set_singularity_handling

This function configures the robot’s response policy for handling singularities during task motion. A singularity occurs when the robot’s Jacobian matrix becomes ill-conditioned, causing instability or loss of path accuracy.

Users can choose among different avoidance strategies to define how the controller reacts when encountering a singular configuration. By default, the robot operates in automatic avoidance mode, which reduces instability but may slightly affect path precision near singular points.

Available modes:
- SINGULARITY_AVOIDANCE_AVOID: Automatic avoidance (default).
- SINGULARITY_AVOIDANCE_STOP: Path-first stop mode.
- SINGULARITY_AVOIDANCE_VEL: Variable velocity mode.

Definition
DRFLEx.h within class CDRFLEx, public section (line 983)

bool set_singularity_handling(SINGULARITY_AVOIDANCE eMode) {
    return _set_singularity_handling(_rbtCtrl, eMode);
};

Parameter

Parameter Name

Data Type

Default Value

Description

eMode

SINGULARITY_AVOIDANCE

SINGULARITY_AVOIDANCE_AVOID

Sets the singularity handling mode.

Return

Value

Description

0

Failed to update singularity handling mode.

1

Successfully applied the new singularity handling policy.

Example

#include "DRFLEx.h"
using namespace DRAFramework;

int main() {
    CDRFLEx drfl;

    float p1[6] = {400.0f, 500.0f, 600.0f, 0.0f, 180.0f, 0.0f};
    float p2[6] = {400.0f, 500.0f, 200.0f, 0.0f, 180.0f, 0.0f};

    // 1) Default automatic avoidance mode
    drfl.set_singularity_handling(SINGULARITY_AVOIDANCE_AVOID);
    drfl.movel(p1, 50, 50);

    // 2) Path-first stop mode for safety near singular points
    drfl.set_singularity_handling(SINGULARITY_AVOIDANCE_STOP);
    drfl.movel(p2, 30, 30);

    // 3) Variable velocity mode for smooth operation around singularities
    drfl.set_singularity_handling(SINGULARITY_AVOIDANCE_VEL);
    drfl.movel(p1, 40, 40);

    return 0;
}

This example demonstrates how to configure the singularity handling strategy to balance stability and path accuracy during task-space motions. When operating near singular regions, select the appropriate mode based on motion priority and application safety requirements.