I'm trying to filter data from the force sensor mounted on the end effector of the industrial robot arm. Mechanical vibration caused by the robot's motion (possibly by actuators, reductors, etc.) generates noise in the force sensor readings. It seems that the spectrum of the noise depends on the speed of the motion and the particular trajectory taken by the robot. Adding to the complexity, due to technical constraints, I can sample the signal with a sample time of about 4 ms (250 Hz), and I suppose that it can deviate from this value by about 2 ms. Unfortunately, it is not possible for me to filter the signal before sampling to avoid aliasing. What kind of filter can you recommend for this situation? On the graphs of the spectrum below, d1 is the sensor noise when the robot isn't moving, d2 and d4 are the X-component of the force when the linear speed is 20 mm/s and 80 mm/s, correspondingly.
Here are my observations, correct me please if I'm wrong:
- It seems that in the low-frequency region we may have frequency aliasing, especially for the graph with d4 (orange one).
- The noise occupies almost all the frequencies, making it difficult to find a cut-off for filter design.
- The only feasible solution I see is to move at slow speeds up to 20 mm/s and design an IIR filter with the cut-off frequency of about 8-10 Hz.
P.S. Don't pay attention to the fact that the zero levels on the orange graph do not coincide. It is another technical problem caused by some cables affecting the force sensor in motion.