Abstract:
A system for motion control in which an application is developed that is independent from the actual motion control hardware used to implement the system. The system comprises a software system that employs an application programming interface comprising component functions and a service provider interface comprising driver functions. A system programmer writes an application that calls the component functions. Code associated with the component functions relates these functions to the driver functions. A hardware designer writes driver code that implements the driver functions on a given motion control hardware product. The driver functions are separated into core and extended driver functions. All software drivers implement the core driver functions, while the software drivers need not contain code for implementing the extended driver functions. If the software driver does not contain code to implement an extended driver function, the functionality of the extended driver function is obtained through a combination of core driver functions. The system programmer may also select one or more streams that allow the control commands to be communicated to, and response data to be communicated from, motion control hardware.
Abstract:
A system for motion control in which an application is developed that is independent from the actual motion control hardware used to implement the system. The system comprises a software system that employs an application programming interface comprising component functions and a service provider interface comprising driver functions. A system programmer writes an application that calls the component functions. Code associated with the component functions relates these functions to the driver functions. A hardware designer writes driver code that implements the driver functions on a given motion control hardware product. The driver functions are separated into core and extended driver functions. All software drivers implement the core driver functions, while the software drivers need not contain code for implementing the extended driver functions. If the software driver does not contain code to implement an extended driver function, the functionality of the extended driver function is obtained through a combination of core driver functions. The system programmer may also select one or more streams that allow the control commands to be communicated to, and response data to be communicated from, motion control hardware.
Abstract:
A system for allowing communication between a software application and at least one motion controller in a set of motion controllers comprising a set of selectable software modules, a software system, and a driver administrator. At least two selectable software modules expose a common software interface. The software application comprises at least one motion command associated with a primitive motion operation. The software system uses the driver administrator to select at least one selected software module and to load the selected software module. The software system commands at least one selected motion controller to perform the desired motion sequence using the plurality of motion commands of the software application and the common software interface.
Abstract:
A motion control system comprising an application program, a plurality of motion controllers, a set of software drivers, and a motion component. Each software driver exposes a service provider interface comprising a set of driver functions. Driver code of at least one software driver associates at least one driver function with at least one control command. The motion component exposes an application programming interface comprising a set of component functions and component code associates at least one of the component functions with at least one of the driver functions. The at least one selected software driver generates at least one control code from the motion controller language associated with the at least one selected motion controller based on the at least one component function called by the application program, the component code, and the driver code of the at least one selectable software driver.
Abstract:
A system for debugging motion control software used to communicate with a motion control system, comprising a set of hardware motion control attributes, a set of common motion control attributes a motion control device, a set of software drivers, a software application, and a motion component. A selected software driver is capable of causing debug information to be sent to a debug target and converting a common motion control attribute to a hardware motion control attribute. The software application calls a motion component function to cause the motion component function to call a driver function. The called driver function causes the selected software driver to convert a common motion control attribute to a hardware motion control attribute, exchange a hardware motion control attribute with the motion control device, and cause debug information to be sent to the debug target.
Abstract:
A system for communicating with a motion controller, comprising a set of primitive motion commands and non-primitive motion commands, a set of motion operations, a reprogrammable motion controller capable of executing at least one motion command, a set of selectable software modules, and a software system. Functionality of the non-primitive motion commands can be emulated by a combination of primitive motion commands. Functionality of the primitive motion commands cannot be emulated by a combination of primitive motion commands. At least one motion operation is associated with at least one motion command. At least one software module is associated with at least one motion controller, and at least two selectable software modules expose a common software interface. The software system is capable of commanding at least one motion controller to perform at least one motion operation using the common software interface exposed by at least one selected software module associated with at least one motion controller.
Abstract:
A method in a robot of providing hardware abstraction for robot control software. A plurality of resource drivers for the robot includes resource drivers for which no corresponding hardware is present on the robot. Resources that are available on the robot are automatically detected based a hardware configuration detected for the robot. A request is received from the robot control software to use a type of resource. A resource that corresponds to the type of resource requested by the robot control software is automatically selected. A first information related to use of the selected resource is provided in a unit of measure that is related to a robot. A second information related to the use requested by the robot control software is provided in a unit of measure that is related to a corresponding device. The method converts between the first information and the second information based on the detected configuration of the robot.
Abstract:
A method of debugging software used to communicate with a motion control system comprising the following steps. Debug information containing diagnostic information associated with a hardware motion control attribute is generated. At least one selected software driver is capable of sending the debug information to a debug target. A software application is caused to call a motion component function to exchange a common motion control attribute with a selected software driver. The called motion component function is used to cause a motion component to exchange a common motion control attribute with the selected driver by calling a driver function. A called driver function is used to cause the selected software driver to convert a common motion control attribute to a hardware motion control attribute, exchange a hardware motion control attribute with the motion control device, and send debug information to the debug target.
Abstract:
A method of causing movement of at least one target device based on at least one of a plurality of motion programs stored on a content server connected to a network. At least one identified characteristic of the at least one target device is identified. At least one selected motion program is selected from the plurality of motion programs stored on the content server. The at least one identified characteristic and the at least one selected motion program are transferred to the motion server. A motion media data set is generated at the motion server for the target motion device based on the at least one identified characteristic of the target device and the at least one selected motion program. The motion media data set is transferred from the motion server to the target motion device to cause the target device to perform the desired sequence of movements.
Abstract:
A system for allowing communication between a software application and at least one motion controller in a set of motion controllers comprising a set of motion operations, a set of motion commands, a set of selectable software modules, a software system, and a driver administrator. At least one motion command is associated with at least one primitive motion operation. Each software module is associated with at least one motion controller in the set of motion controllers. At least two selectable software modules expose a common software interface. The software application comprises a plurality of motion commands associated with a desired motion sequence, where the application comprises at least one motion command associated with a primitive motion operation. The software system uses the driver administrator to select at least one selected software module. The software application uses the driver administrator to load the selected software module. The software system commands at least one selected motion controller to perform the desired motion sequence using the plurality of motion commands of the software application, and the common software interface exposed by the at least one selected software module associated with the at least one selected motion controller.