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.
- 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.
- 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.
- 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.
- 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.
- 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.