Interface for robot motion control
First Claim
1. A method for controlling a robot, comprising:
- receiving, from a robot controller software module, a robot-independent software command that is independent of the robot'"'"'s hardware capabilities, wherein the robot-independent software command includes an absolute starting time that indicates when to execute the robot-independent software command based on a clock;
determining a first configurable time period based on the absolute starting time;
waiting for the first configurable time period to elapse;
determining by a processor, after the first configurable time period has elapsed, a robot-dependent software command that is not independent of the robot'"'"'s hardware capabilities based on the robot-independent software command;
sending, to a robot driver software module, the robot-dependent software command;
receiving, from the robot driver software module, a first reply;
waiting for a second configurable time period to elapse;
determining, after the second configurable time period has elapsed, a second reply based on the first reply; and
sending, to the robot controller software module, the second reply.
3 Assignments
0 Petitions
Accused Products
Abstract
Systems and methods are presented that enable a higher-level software application to control a robot'"'"'s motion through a generic motion interface. In one embodiment, a system includes a controller, an interface, and a set of robot driver modules. The interface receives a command from the controller and translates the command into another command to send to the driver modules. The interface includes a client, a server, and a network. The server includes two interfaces: a client interface to communicate with the client and a driver interface to communicate with the driver modules. The server also includes two buffers: a command queue and a reply queue. The command queue stores commands received from the controller (via the client). The reply queue stores replies received from the driver modules.
-
Citations
20 Claims
-
1. A method for controlling a robot, comprising:
-
receiving, from a robot controller software module, a robot-independent software command that is independent of the robot'"'"'s hardware capabilities, wherein the robot-independent software command includes an absolute starting time that indicates when to execute the robot-independent software command based on a clock; determining a first configurable time period based on the absolute starting time; waiting for the first configurable time period to elapse; determining by a processor, after the first configurable time period has elapsed, a robot-dependent software command that is not independent of the robot'"'"'s hardware capabilities based on the robot-independent software command; sending, to a robot driver software module, the robot-dependent software command; receiving, from the robot driver software module, a first reply; waiting for a second configurable time period to elapse; determining, after the second configurable time period has elapsed, a second reply based on the first reply; and sending, to the robot controller software module, the second reply. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A system for controlling a robot, comprising:
-
means for receiving, from a robot controller software module, a robot-independent software command that is independent of the robot'"'"'s hardware capabilities, wherein the robot-independent software command includes an absolute starting time that indicates when to execute the robot-independent software command based on a clock; means for determining a first configurable time period based on the absolute starting time; means for waiting for the first configurable time period to elapse; means for determining, after the first configurable time period has elapsed, a robot-dependent software command that is not independent of the robot'"'"'s hardware capabilities based on the robot-independent software command; means for sending, to a robot driver software module, the robot-dependent software command; means for receiving, from the robot driver software module, a first reply; means for waiting for a second configurable time period to elapse; means for determining, after the second configurable time period has elapsed, a second reply based on the first reply; and means for sending, to the robot controller software module, the second reply. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A computer program product stored on a non-transitory computer-readable medium and including instructions that, when loaded into memory, cause a processor to perform a set of operations for controlling a robot, the set of operations comprising:
-
receiving, from a robot controller software module, a robot-independent software command that is independent of the robot'"'"'s hardware capabilities, wherein the robot-independent software command includes an absolute starting time that indicates when to execute the robot-independent software command based on a clock; determining a first configurable time period based on the absolute starting time; waiting for the first configurable time period to elapse; determining, after the first configurable time period has elapsed, a robot-dependent software command that is not independent of the robot'"'"'s hardware capabilities based on the robot-independent software command; sending, to a robot driver software module, the robot-dependent software command; receiving, from the robot driver software module, a first reply; waiting for a second configurable time period to elapse; determining, after the second configurable time period has elapsed, a second reply based on the first reply; and sending, to the robot controller software module, the second reply. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification