Messages in this thread | | | Date | Sat, 25 May 2002 18:48:53 -0600 | From | Erik Andersen <> | Subject | Re: patent on O_ATOMICLOOKUP [Re: [PATCH] loopable tmpfs (2.4.17)] |
| |
On Sun May 26, 2002 at 12:58:27AM +0200, Robert Schwebel wrote: > On Sat, May 25, 2002 at 10:22:00AM -0700, Linus Torvalds wrote: > > So you split your problem into the RT device driver and the user. And of > > story. > > Not possible with closed loop applications.
Indeed. For example -- suppose I have an application that is driving a robot. My application needs to calculate the target values for each joint position in such that I can plot out the jerk, acceleration, velocity, and position in cartesian space of a tool moving in joint space (i.e. lots of 4x4 matrix multiplications, often involving a full 3D model of the workcell) And I need to send each new set of target values to the controller at the servo rate or the robot will stutter.
But if only it were that easy... Since the target values we are talking about is actually just the amount of current being sent to the servo motors. So also at the servo rate, I must read the encoders for each joint to get its actual position (as opposed to nominal postition) and feed that into a control routine (typically using a PID routine using PID gains that vary non-linearly per arm position, intertial loading, phase of the moon, etc) which then varies the actual per-axis servo motor current to make the cartesian-space path of the tool match the nominal path.
So now we have a full 3D model of the robot, the non-liner model of the robot PID-gain space, the entire (application specific) workcell model, the robot specific forward and inverse kinematics routines, and the entire trajectory planning subsystem. And of course we now need the real-time IO subsystem to handle are the thousands of this-and-that sensors (think PLC-type behavior). etc, etc, etc. All this in the kernel? Nah...
-Erik
-- Erik B. Andersen http://codepoet-consulting.com/ --This message was written using 73% post-consumer electrons-- - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |