# How do I compute the impulse response of a robot?

I am trying to model a robot (my question in robotics.SE), so that I may train it using some reinforcement learning techniques. I was wondering if I can compute an impulse response of a four wheel robotic chassis empirically? Or something similar that might help me model the robot. Does a thing like 'the impulse response of a robot' even make sense?

Since a single strobe of a PWM signal shall hardly cause any movement, but a steady stream of PWM signals will, can I consider the impulse response as an infinite impulse response that superposition to cause perceivable motion?

I am certain that the robot chassis is a non-linear system. Generally speaking, will impulse response make any sense on a non-linear system?

• The impulse response of what part of the robot? In order to define an impulse response, you need to define what the system is, what you're giving it as an input, and what you consider its output. The impulse response defines what the output of the system is given an impulse at the input. Something more practical to measure might be a frequency response, which can be mapped back to the impulse response. These concepts are only meaningful for linear, time-invariant (LTI) systems. Even if your system is nonlinear, it's possible that a linear approximation may be close enough for engineering work. – Jason R Nov 15 '12 at 19:11
• I am trying to model the robotic chassis. The input is the PWM and output is the motion. The same PWM would probably cause a different motion when the root is stationary and when it is already moving. I believe that the system is practically time invariant (not counting the wear and tear of the parts). Given this requirement. does the question still make sense? Is the idea of modelling the robot as multiple linear systems, one for each value of the current velocity (discretized) and battery voltage too ambitious or impractical? – Lord Loh. Nov 15 '12 at 19:36
• It's admissible for a linear system to have an output that depends upon previous versions of its output (as you noted, the response may vary depending upon the initial velocity of the robot). This is referred to as feedback. Without knowing much about the structure of your robot, I can't really comment on whether a linear model is reasonable, but if you want to empirically develop a model for the system, you'll want to research system identification techniques. One way might be to directly measure its frequency response, if you have the ability to make those measurements. – Jason R Nov 19 '12 at 15:46

## 1 Answer

Impulse response makes sense for linear systems. If your system is nonlinear forget it. If you assume that your system is linear time invariant, you may want to measure the impulse response by exerting a short duration high energy pulse to your robot. It must have sufficiently high energy so that most of the exerted energy is transferred to kinematic energy of the robot to enable motion.

If this is not possible you can apply longer duration pulses to your robot and then measure its response (motion). You must deconvolve then the response and the input to get the impulse response of your robot. You may try this for a number of different shape pulses and if you get impulse responses similar to each other every time, you can be fairly sure that your system is linear.

Your comment on having an infinite impulse response is not in line with correct systems modelling, so forget about it.