You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: doc/migration.rst
+1Lines changed: 1 addition & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -20,3 +20,4 @@ joint_trajectory_controller
20
20
* Angle wraparound behavior (continuous joints) was added from the current state to the first segment of the incoming trajectory (`#796 <https://github.com/ros-controls/ros2_controllers/pull/796>`_).
21
21
* The URDF is now parsed for continuous joints and angle wraparound is automatically activated now (`#949 <https://github.com/ros-controls/ros2_controllers/pull/949>`_). Remove the ``angle_wraparound`` parameter from the configuration and set continuous joint type in the URDF of the respective joint.
22
22
* Tolerances sent with the action goal were not used before, but are now processed and used for the upcoming action. (`#716 <https://github.com/ros-controls/ros2_controllers/pull/716>`_). Adaptions to the action goal might be necessary.
23
+
* Parameter ``open_loop_control`` is replaced by ``interpolate_from_desired_state`` and setting the feedback gains to zero (`#1525 <https://github.com/ros-controls/ros2_controllers/pull/1525>`_).
Copy file name to clipboardExpand all lines: doc/release_notes.rst
+2Lines changed: 2 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -52,6 +52,8 @@ joint_trajectory_controller
52
52
allowed to move without restriction.
53
53
54
54
* Add the boolean parameter ``set_last_command_interface_value_as_state_on_activation``. When set to ``true``, the last command interface value is used as both the current state and the last commanded state upon activation. When set to ``false``, the current state is used for both (`#1231 <https://github.com/ros-controls/ros2_controllers/pull/1231>`_).
55
+
* Feed-forward effort trajectories are supported now (`#1200 <https://github.com/ros-controls/ros2_controllers/pull/1200>`_).
56
+
* Parameter ``open_loop_control`` is replaced by ``interpolate_from_desired_state`` and setting the feedback gains to zero (`#1525 <https://github.com/ros-controls/ros2_controllers/pull/1525>`_).
Copy file name to clipboardExpand all lines: joint_trajectory_controller/doc/parameters_context.yaml
+2-2Lines changed: 2 additions & 2 deletions
Original file line number
Diff line number
Diff line change
@@ -2,8 +2,6 @@ constraints:
2
2
Default values for tolerances if no explicit values are set in the ``JointTrajectory`` message.
3
3
4
4
gains: |
5
-
Only relevant, if ``open_loop_control`` is not set.
6
-
7
5
If ``velocity`` is the only command interface for all joints or an ``effort`` command interface is configured, PID controllers are used for every joint.
8
6
This structure contains the controller gains for every joint with the control law
9
7
@@ -16,3 +14,5 @@ gains: |
16
14
i.e., the shortest rotation to the target position is the desired motion.
17
15
Otherwise :math:`e = s_d - s` is used, with the desired position :math:`s_d` and the measured
18
16
position :math:`s` from the state interface.
17
+
18
+
If you want to turn off the PIDs (open loop control), set the feedback gains to zero.
Copy file name to clipboardExpand all lines: joint_trajectory_controller/doc/trajectory.rst
+2Lines changed: 2 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -49,6 +49,8 @@ The spline interpolator uses the following interpolation strategies depending on
49
49
50
50
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.
51
51
52
+
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.
53
+
52
54
Visualized Examples
53
55
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
54
56
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.
This means that the joints can have one or more command interfaces, where the following control laws are applied at the same time:
29
30
30
31
* For command interfaces ``position``, the desired positions are simply forwarded to the joints,
31
32
* For command interfaces ``acceleration``, desired accelerations are simply forwarded to the joints.
32
33
* 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`).
34
+
* 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.
35
+
* 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.
33
36
34
37
This leads to the following allowed combinations of command and state interfaces:
35
38
@@ -38,7 +41,7 @@ This leads to the following allowed combinations of command and state interfaces
38
41
39
42
* if command interface ``velocity`` is the only one, state interfaces must include ``position, velocity`` .
40
43
41
-
* With command interface ``effort``, state interfaces must include ``position, velocity``.
44
+
* With command interface ``effort`` or ``position, effort``, state interfaces must include ``position, velocity``.
42
45
43
46
* With command interface ``acceleration``, state interfaces must include ``position, velocity``.
44
47
@@ -97,7 +100,7 @@ A yaml file for using it could be:
0 commit comments