Skip to content

Indy Tools

IndySDK는 사용자가 자신의 저수준 로봇 컨트롤러를 쉽게 구성할 수 있도록 설계된 다양한 도구를 포함하고 있습니다. 이러한 도구에는 필터와 필터링된 도함수가 포함되며, NRMKFoundation 네임스페이스에 포함된 Util/Filter.h 라이브러리를 포함함으로써 접근할 수 있습니다.

1. Filters

IndySDK는 저수준 로봇 컨트롤러 구성을 위한 신호를 정제하고 처리하기 위해 설계된 포괄적인 필터링 도구 세트를 제공합니다. Filter 클래스의 모든 다른 유형의 필터는 컷오프 주파수와 특정 다항식 계수와 같은 매개변수를 통해 정밀하게 조정될 수 있어, 정확한 신호 조작을 가능하게 합니다. 제공되는 API는 로봇 제어 시스템에 필수적인 광범위한 신호 처리 작업을 용이하게 하며, 신호 동역학을 관리하는 데 있어 유연성과 정밀성을 강조합니다.

1.1. Filter Class

Filter 클래스는 LowPassFilter, FilteredDerivative, FilterLeadLag, FilterMovingAverage를 포함한 여러 특정 필터 구현의 기반으로 작용합니다. 이 클래스는 신호 필터링 및 필터 특성 설정을 위한 기초적인 메소드를 제공합니다.

NRMKFoundation::Filter::filter

Refines input signals through filtering.

void filter(Type const &raw, Type &filtered);
  • Parameters
    • Type const &raw: The input signal to be filtered.
    • Type &filtered: The output filtered signal.

NRMKFoundation::Filter::setTransferFunction

Configures the filter by specifying its transfer function.

void setTransferFunction(CoeffVec const &den, CoeffVec const &num);
  • Parameters
    • CoeffVec const &den: Denominator polynomial coefficients.
    • CoeffVec const &num: Numerator polynomial coefficients.

1.2. LowPassFilter

Implements a lowpass filter with a specific cutoff frequency.

NRMKFoundation::LowpassFilter::setParam

Sets parameters for the lowpass filter.

void setParam(double sampFreq, double cutOffFreq);
  • Parameters
    • double sampFreq: Control system's sampling frequency.
    • double cutOffFreq: Lowpass filter's cutoff frequency.

1.3. FilteredDerivative

미분 과정을 부드럽게 하고 노이즈를 줄이기 위해 필터링 기능을 갖춘 미분 필터를 제공합니다.

NRMKFoundation::FilteredDerivative::setParam

Sets parameters for the derivative filter.

void setParam(double sampFreq, double cutOffFreq);
  • Parameters
    • double sampFreq: Control system's sampling frequency.
    • double cutOffFreq: Filter's cutoff frequency.

1.4. FilterLeadLag

리드-래그 필터는 제어 시스템의 위상 특성을 조정하여 시스템의 과도 응답을 개선하기 위해 구현됩니다.

NRMKFoundation::FilterLeadLag::setParam

Configures the lead-lag filter with specific frequencies.

void setParam(double sampFreq, double f1, double f2, double f3);
  • Parameters
    • double sampFreq: Sampling frequency of the control system.
    • double f1, f2, f3: Frequencies defining the filter's characteristics.

1.5. FilterMovingAverage

A moving average filter is used to smooth out signal noise across a defined window size.

NRMKFoundation::FilterMovingAverage::FilterMovingAverage

Initializes the moving average filter with predefined coefficients.

FilterMovingAverage()
{
  _b[0] = 1.0/_SIZE;

  for (int i = 1; i <= _SIZE; i++)
  {
    _a[i] = 0;
    _b[i] = _b[0];
  }
}
  • Parameters
    • int _SIZE: Window size for the moving average.
    • _a, _b: Arrays for denominator and numerator coefficients, respectively.