Skip to content

Commit 8e0ff1d

Browse files
authored
Merge branch 'moveit:main' into main
2 parents 9664b21 + 82e1178 commit 8e0ff1d

File tree

1 file changed

+25
-0
lines changed

1 file changed

+25
-0
lines changed

doc/examples/realtime_servo/realtime_servo_tutorial.rst

+25
Original file line numberDiff line numberDiff line change
@@ -273,3 +273,28 @@ An example of using the pose commands in the context of servoing to open a door
273273
.. code-block:: bash
274274
275275
ros2 launch moveit2_tutorials pose_tracking_tutorial.launch.py
276+
277+
Signal Smoothing
278+
----------------
279+
280+
Reviewing :moveit_codedir:`servo_parameters.yaml <moveit_ros/moveit_servo/config/servo_parameters.yaml>`, notice the parameter `smoothing_filter_plugin_name`. This helps smooth out any irregularities in joint commands to the robot, for example if there is an inconsistent period between commands. It can greatly reduce wear-and-tear on the robot's actuators and, in fact, many robots will not move unless incoming commands are sufficiently smooth. These are plugins so any user can write their own.
281+
282+
The current options are:
283+
284+
`online_signal_smoothing::ButterworthFilterPlugin`: This is a very simple low-pass filter, slightly more advanced than a moving average.
285+
286+
Benefits: computationally efficient, never overshoots the command in joint space.
287+
288+
Drawbacks: may deviate slightly from "straight line motion" in Cartesian space. Does not explicitly limit actuator jerk or acceleration.
289+
290+
`online_signal_smoothing::AccelerationLimitedPlugin`: This is an optimization-based algorithm that obeys the robot's acceleration limits (if feasible). Read more at https://github.com/moveit/moveit2/pull/2651
291+
292+
Benefits: Maintains the desired direction of motion as long as it's kinematically feasible to do so. Can be useful for "sharp corners." Ensures robot joint acceleration limits are not violated.
293+
294+
Drawbacks: Does not explicitly limit actuator jerk. Still can deviate from the intended direction of motion if the incoming command is not possible. May overshoot.
295+
296+
`online_signal_smoothing::RuckigFilterPlugin`: This uses the well-known `Ruckig library <https://github.com/pantor/ruckig>`_ to ensure robot motions always obey joint and acceleration limits. Read more at https://github.com/moveit/moveit2/pull/2956
297+
298+
Benefits: The smoothest option. Required for certain industrial robots.
299+
300+
Drawbacks: Sometimes deviates from the intended direction of motion. For example, tends to make a swirling motion at sharp corners. To prevent the swirling motion requires extra logic on the incoming commands, outside of MoveIt Servo. May overshoot.

0 commit comments

Comments
 (0)