A
system and method of capturing, storing, editing and outputting multi-track motion data in a continuous
stream on a computer with deterministic timing, where the length of the motion dataset is not limited by computer
Random Access Memory. A hard real time periodic motion task takes in data streams from sensors or other computers, stores it in a
shared memory area, and streams out the data to other computers so as to actuate motion. A
shared memory area stores buffers and flags which indicate what data should be swapped to and from persistent storage. A soft real time periodic task transfers data pages between RAM and persistent storage based on requests from the motion task. Three data pages surround the
active point in the motion dataset, four pages are reserved for
copying whole blocks of data, and three pages are reserved for
data editing. These ten
active memory pages define a fixed
memory footprint which can
handle a deterministic
data stream of effectively infinite length. The systems periodic data output can be triggered instantaneously or locked in synchronization with other hard real time equipment such that data is never lost or transmitted late. The
system may capture data, control robotic mechanisms, or
stream motion via a network into the
graphics or data capture environments of other computers.