Robot end effector control
10406685 ยท 2019-09-10
Assignee
Inventors
Cpc classification
B25J9/1633
PERFORMING OPERATIONS; TRANSPORTING
B25J9/1612
PERFORMING OPERATIONS; TRANSPORTING
B25J9/163
PERFORMING OPERATIONS; TRANSPORTING
International classification
Abstract
Techniques are provided for achieving stable tracking and/or manipulation by robots of objects. In various implementations, it may be detected, based on force signal(s) from force sensor(s), that an end effector of the robot has made physical contact with an environmental object. Based on the force signal(s), end effector constraint(s) may be identified. These constraint(s) may include a position constraint associated with position control of the end effector and/or a grasp force constraint associated with grasp force control of the end effector. Error measure(s) may be determined based on a measured position/force of the end effector. The error measure(s) may include a position control and/or grasp control error. The measured position and/or force may be compared with the end effector constraint(s) to reduce an impact of the error measure(s) on operation of the robot.
Claims
1. A computer-implemented method, comprising: detecting, based on one or more force signals from one or more force sensors operably coupled with a robot, that an end effector of the robot has made physical contact with an object in an environment; identifying, based on the one or more force signals, one or more end effector constraints of the end effector, wherein the one or more end effector constraints include one or more of: a position constraint associated with position control of the end effector, and a grasp force constraint associated with grasp force control of the end effector; determining a measured position of the end effector and a measured force of the end effector; determining, based on the measured position and the measured force, one or more error measures associated with the robot, wherein the one or more error measures includes one or more of: a position control error, and a grasp force error, wherein the position control error is indicative of an offset of the end effector from a desired position of the end effector, and the grasp force error is indicative of an offset between force provided by the end effector and a desired grasp force; comparing the measured position or the measured force with the one or more end effector constraints, wherein the one or more end effector constraints include one or more deadbands in which one or more error measures associated with the robot are ignored; and based on the comparing, reducing an impact of the one or more error measures on operation of the robot.
2. The computer-implemented method of claim 1, wherein the identifying comprises identifying both the position constraint and the grasp force constraint.
3. The computer-implemented method of claim 1, wherein the reducing includes reducing an impact of the position control error on implementation of one or more position instructions.
4. The computer-implemented method of claim 1, wherein the reducing includes reducing an impact of the grasp force error on implementation of one or more grasp torque instructions.
5. The computer-implemented method of claim 1, wherein one or more of the deadbands are dynamic deadbands that are computed based on one or more signals.
6. The computer-implemented method of claim 5, wherein the dynamic deadbands are computed based on the one or more force signals.
7. The computer-implemented method of claim 5, wherein the dynamic deadbands are computed based on the desired grasp force.
8. The computer-implemented method of claim 1, wherein the one or more deadbands include a position deadband comprising a range of positions of the end effector in which the position control error is ignored.
9. The computer-implemented method of claim 1, wherein the one or more deadbands include a force deadband comprising a range of grasp forces in which the grasp force error is ignored.
10. A robot comprising at least one end effector and one or more processors and memory operably coupled with the one or more processors, wherein the memory stores instructions that, in response to execution of the instructions by one or more processors, cause the one or more processors to: detect, based on one or more force signals from one or more force sensors operably coupled with a robot, that the end effector of the robot has made physical contact with an object in an environment; identify, based on the one or more force signals, one or more end effector constraints of the end effector, wherein the one or more end effector constraints include one or more of: a position constraint associated with position control of the end effector, and a grasp force constraint associated with grasp force control of the end effector; determine a measured position of the end effector and a measured force of the end effector; determine, based on the measured position and the measured force, one or more error measures associated with the robot, wherein the one or more error measures includes one or more of: a position control error, and a grasp force error, wherein the position control error is indicative of an offset of the end effector from a desired position of the end effector, and the grasp force error is indicative of an offset between force provided by the end effector and a desired grasp force; compare the measured position or the measured force with the one or more end effector constraints, wherein the one or more end effector constraints include one or more deadbands in which one or more error measures associated with the robot are ignored; and based on the comparison, reduce an impact of the one or more error measures on operation of the robot.
11. The robot of claim 10, wherein the identifying comprises identifying both the position constraint and the grasp force constraint.
12. The robot of claim 10, wherein the reducing includes reducing an impact of the position control error on implementations of one or more position instructions.
13. The robot of claim 10, wherein the reducing includes reducing an impact of the grasp force error on one or more grasp torque instructions.
14. The robot of claim 10, wherein one or more of the deadbands are dynamic deadbands that are computed based on one or more signals.
15. The robot of claim 14, wherein the dynamic deadbands are computed based on the one or more force signals.
16. The robot of claim 10, wherein the one or more deadbands include a position deadband comprising a range of positions of the end effector in which the position control error is ignored.
17. The robot of claim 10, wherein the one or more deadbands include a force deadband comprising a range of grasp forces in which the grasp force error is ignored.
18. At least one non-transitory computer-readable medium comprising instructions that, in response to execution of the instructions by one or more processors, cause the one or more processors to perform the following operations detecting, based on one or more force signals from one or more force sensors operably coupled with a robot, that an end effector of the robot has made physical contact with an object in an environment; identifying, based on the one or more force signals, one or more end effector constraints of the end effector, wherein the one or more end effector constraints include one or more of: a position constraint associated with position control of the end effector, and a grasp force constraint associated with grasp force control of the end effector; determining a measured position of the end effector and a measured force of the end effector; determining, based on the measured position and the measured force, one or more error measures associated with the robot, wherein the one or more error measures includes one or more of: a position control error, and a grasp force error, wherein the position control error is indicative of an offset of the end effector from a desired position of the end effector, and the grasp force error is indicative of an offset between force provided by the end effector and a desired grasp force; comparing the measured position or the measured force with the one or more end effector constraints, wherein the one or more end effector constraints include one or more deadbands in which one or more error measures associated with the robot are ignored; and based on the comparing, reducing an impact of the one or more error measures on operation of the robot.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1)
(2)
(3)
(4)
(5)
(6)
DETAILED DESCRIPTION
(7)
(8) In this example, system 100 includes one or more fingers 102 of a gripper-style robot end effector that may be used to act upon object in an environment in which a robot (not depicted) is deployed. System 100 also includes a motor carriage 104 (also referred to simply as motor) that is attached to a fixed frame 106 (or the ground, or a carriage) by a spring 108. Spring 108 may have an associated spring constant, or stiffness constant K, that is specific to the spring used. A spring with a greater spring constant K may require more force to compress or expand than another spring having a lesser spring constant. Motor 104 may be configured to move with one degree of freedom in a direction parallel to L1 in
(9) In various implementations, a sensor 112 may be configured to measure a position of motor 104 relative to hard stop 110. In some implementations, sensor 112 may take the form of a linear or rotary encoder (e.g., mechanical, optical, magnetic, capacitive, etc.) that is configured to detect rotation of transmission 114 relative to another component of system 100, such as motor 104, frame 106, hard stop 110, etc. Additionally or alternatively, sensor 112 may take the form of a potentiometer that detects a position of various components of system 100 relative to other components of system 100. In some implementations, displacement measured by sensor 112 may be equivalent to measured deflection of spring 108, and is indicated in
(10) In various implementations, motor 104 may be coupled with a transmission 114 that is actuated (e.g., rotated in one or more directions) by motor 104 (e.g., motor 104 provides the input) and coupled to finger 102 (or another end effector tool) that effectively receives the output. Motor 104 may actuate (e.g., rotate) transmission 114 so that total displacement between motor 104 and finger 102, L2 in
(11) In some implementations, another sensor 116 (which may be the same type of sensor as 112 or a different type of sensor) may be configured to measured displacement x between finger 102 and hard stop 110. Consequently, signals from both sensors 112 and 116 can be combined (d+x) to determine L2. Of course, this sensor arrangement is not meant to be limiting. Any sensor arrangement capable of directly or indirectly determining d and x may be employed, such as a sensor arrangement that measures L2 and d. In some implementations, sensor 116 may be a force or torque sensor that is deployed (e.g., in series with spring 108) to measure a force carried by spring 108. In some such implementations, the force of spring 108 may be measured directly rather than by using a spring deflection model.
(12) More generally, sensors 112 and 116 may take various forms (and need not be the same form), such as linear or rotary sensors, relative or absolute position sensors, etc. Additionally, sensors 112 and 116 may employ various types of position sensing technology, such as magnetic encoding, optical encoding, etc. Moreover, depending on what technology they employ, sensors 112 and 116 may include any necessary transmission elements, such as gearing, linear-to-rotary convertors (or vice versa), as well as various conditioning circuitry and/or initialization routines (e.g., homing processes, calibration).
(13) During operation of the robot, external forces F.sub.external may act upon finger 102. The force vector F.sub.external depicted in
(14) In various implementations, system 100 may be operated as follows. To close finger 102 (i.e. increase L2), motor 104 may be driven to move finger 102 rightward in
(15) If the environment is extremely stiff such that K.sub.env>>K, operating motor 104 to increase L2 will result in relatively little leftward movement of finger 102, while motor 104 will move to the left by a relatively larger amount (increasing d proportionately). Put another way, grasp force as represented by d may increase to a greater degree than leftward movement of finger 102 as represented by x. In short, motor 104 may be operated to increase L2 until finger 102 contacts the environmental object that is providing the stiffness (impedance), after which point both x and d will increase (and d will increase more quickly). Driving motor 104 to open finger 102 (i.e. decrease L2) would have the opposite effects. It should be noted that environmental objects may also include components of a robot itself. For example, if a robot is instructed to pinch two fingers together (e.g., to cooperatively compress a stiff button), each finger may contact the other and impart environmental force on the other.
(16) As indicated by the arrows originating from hard stop 110 near the bottom of
(17) Additionally, motor 104 may be selected to lower cost and/or achieve relatively small size. Consequently, motor 104 may only be able of achieving grasp forces d by operating in a non-continuous torque regime in which torque levels are generated that can only be sustained for a limited period of time, as more waste heat is generated than can be dissipated by motor 104. Extended operation may result in a thermally-driven failure of motor 104. For example, peak torque levels may be sustained for only a few seconds before a thermal protection feature clamps output to the continuous torque limit. Peak torque levels may not be accessed again until actual torque falls below a small fraction of the continuous limit for a sufficient amount of time. Like the friction challenges above, unacceptable system behavior can occur if a controller increases grasp force using a peak torque, which then falls back to, and then holds at the continuous motor torque levelresulting in a potentially unrecoverable stall, especially when the friction characteristics described above are included.
(18)
(19) Accordingly, techniques are described herein for, given desired grasp positions (x.sub.desired) and/or desired grasp torques or forces (d.sub.desired) for gripper-style end effectors, determining robot instructions (e.g., actuator/joint control commands) that achieve stable tracking and/or manipulation of objects with acceptable response characteristics. For example, a control system that implements techniques described herein should avoid unrecoverable stall situations triggered by the various factors described above. In some implementations, control system techniques described herein may explicitly converge to either the position setpoint or the force setpoint, whichever is encountered first. Therefore, both targets act as a limit and the command interface may be interpreted as both close to the desired position without exceeding the max grasp force and close to the desired grasp force without exceeding the max finger position.
(20)
(21) Now, suppose finger 102 makes contact with an environmental object (e.g., an object to be lifted or otherwise interacted with by finger 102). The dashed line 232 represents potential position/force solutions in a scenario in which finger 102 makes relatively soft contact with the environmental object. Once again contact occurs at 222, and force d increases as penetration occurs (i.e. x increases). Consequently, the position target x.sub.desired is reached before the grasp force target d.sub.desired. Increased grasp force increases friction and stiction, and operation of motor 104 at these increased friction levels may exceed continuous limits. Accordingly, a position deadband 234 may be defined around a nominal effective setpoint 236. When current position x (e.g., measured by sensor 116) is within position deadband 234, the controller may not exert corrective effort to correct for positional errors e.sub.x.
(22) Without positional deadband 234 or some equivalent, system 100 (and more particularly, finger 102) may come to rest slightly off the target due to stiction effects and continue to exert effort against friction, which may heat motor 104 to unacceptable temperatures. Furthermore, if there is integral control action (e.g., error is accumulated over time) the system may suffer from hunting limit cycles that are characterized by stopping off target, remaining stationary while an integrator (which integrates error over time, e.g., an op-amp intergrator) winds up, breaking stiction and shooting past the target in the other direction, stopping off target due to stiction again, and repeating indefinitely. On the other hand, with positional deadband 234, an entire portion of dashed line 232 within region 238 may be considered on target (i.e. positional error e.sub.x is ignored). In various implementations, position deadband 234 may be tailored or tuned to allow a controller configured with selected aspects of the present disclosure to experience higher gains than would otherwise be tolerable, improving overall system performance and keeping motor 104 within acceptable temperature ranges.
(23) The dash-dot-dashed line 240 represents potential position/force solutions in a scenario in which finger 102 makes contact with a relatively stiff environmental object (e.g., Kenv>>K). Once again contact occurs at 222. In this scenario, the grasp force target d.sub.desired is reached before the position position target x.sub.desired. As was the case for positional control, a force deadband 242 may be defined around a nominal effective setpoint 244. When current grasp force d (e.g., as measured by sensor 112) is within force deadband 242, the controller may not exert corrective effector to correct for grasp force errors e.sub.d. On the other hand, with force deadband 242, an entire portion of line 240 within region 246 may be considered on target (i.e. force error e.sub.d is ignored).
(24) In various implementations, position deadband 234 and/or force deadband 242 may be static or dynamic. In the latter case, since friction and/or stiction increases proportionally with grasp force d, a force deadband 242 may be increased (e.g., widened) dynamically as a function of desired grasp force d.sub.desired. In other implementations, other techniques may be employed in addition to or instead of deadbands, such as simple thresholds, a hysteresis, a blending function, etc.
(25)
(26) Freespace position controller 334 may be configured to receive position error e.sub.x as input and generate, as output, a torque command T.sub.freespace for a torque-controlled motor 352. In various implementations, freespace position controller 334 may implement any known control law or laws appropriate for position control in the defined freespace regime, such as a proportional derivative (PD), proportional-integral (PI), proportional-integral-derivative (PID), proportional-integral-proportional (PIP), nonlinear control, feedforward/feedback linearization, etc. In some embodiments, freespace position controller 334 may implement a PID with integral drain.
(27) Cascaded grasp force-position controller 335 may include a position error deadband component 336 that may come in various forms, such as a digitally-implemented software component, or any other suitable electrical circuits (e.g., variable deadband (voltage controlled) circuits). In various implementations, position error deadband component 336 may receive e.sub.x as input. Position error deadband component 336 may evaluate e.sub.x against a defined deadband region (e.g., 234 in
(28) Cascaded grasp force-position controller 335 may also include, e.g., downstream from position error deadband component 336, a grasp position controller 338. Grasp position controller 338, which may be implemented as software and/or as an op-amp network, may receive, as input, the deadband position error provided by position error deadband component 336 to generate and output a change in grasp force command d (not to be confused with motor force) relative to the current measured grasp force d sent to a grasp torque controller 348. In various implementations, grasp position controller 338 may implement any control law or laws appropriate for position control across various grasp force levels. In some implementations, grasp position controller 338 may implement a PID with asymmetric parameter tuning for closing finger 102 versus opening finger 102 (e.g., position errors with different signs may have different controller tunings).
(29) In various implementations, the change in grasp force command d may be summed at 340 with the measured grasp force d to obtain the grasp force command. This may be provided to a target force clamp 342. Target force clamp 342 may then clamp this sum to the current desired force d.sub.desired provided as input. Target force clamp 342 may provide, as output, a clamped grasp force command d.sub.cmd. At 344, a difference between the clamped grasp force command d.sub.cmd and measured grasp force d may be calculated as grasp force error e.sub.d and provided as input to a grasp force deadband component 346.
(30) Grasp force deadband component 346 may be configured to apply a grasp deadband (e.g., 242 in
(31) A grasp torque controller 348 may be configured to receive the deadband grasp force error produced by grasp force deadband component 346 and generate a torque command T.sub.grasp that is provided to torque-controlled motor 352. Like other controller blocks in
(32) At 350, T.sub.freespace and T.sub.grasp may be combined into T.sub.motor, which is then provided to torque-controlled motor 352. This may be effectively the same as selecting one or another, because in some implementations, controller selection logic 332 may set the unselected path to zero. In other implementations, T.sub.freespace and T.sub.grasp may be evaluated in parallel, and selection between the two may be performed at 350, rather than at controller selection logic 332. Torque-controlled motor 352 may comprise a motor (e.g., 104 in
(33) Component 354 in
(34) The architecture depicted in
(35) Referring now to
(36) At block 402, the system may detect, based on one or more force signals from one or more force sensors operably coupled with a robot, that an end effector of the robot has made physical contact with an object in the environment. Examples of when physical contact is detected are shown in
(37) At block 404, the system may identify, based on the one or more force signals, one or more end effector constraints of the end effector. In various implementations, the end effector constraints may include a position constraint associated with position control of the end effector and/or and a grasp force constraint associated with grasp force control of the end effector. Examples of end effector constraints include the position deadband 234 and force deadband 242 shown in
(38) At block 406, the system may determine one or more error measures associated with the robot. In various implementations, the one or more error measures may include one or more of: a position control error e.sub.x and a grasp force error e.sub.d. In various implementations, the position control error e.sub.x may be indicative of an offset of the end effector (e.g., finger 102) from a desired position of the end effector, and the grasp force error e.sub.d may be indicative of an offset between force provided by the end effector and a desired grasp force. In some implementations, and as was depicted at 330 of
(39) At block 408, the system may compare the measured position and/or force with the one or more end effector constraints. For example, in some implementations, at block 410, the system may determine whether a measured position x falls within the position deadband 234. If the answer at block 410 is yes, then e.sub.x may be set to zero (or some other suitably small value) at block 412. Likewise, at block 414, the system may determine whether a measured grasp force d falls within force deadband 242 depicted in
(40)
(41) When motor 504 is operated to rotate transmission 514, worm 572 also rotates, which in turn causes worm gear 570 to correspondingly rotate. Likewise, when external force (e.g., F.sub.external in
(42) End effector 500 may include a variety of sensors, such as sensors 512 and 516. In some implementations, sensor 512 may take the form of an actuator encoder that, for instance, detects rotation of transmission 514. Sensor 512 may be positioned on transmission 514 as depicted in
(43)
(44) User interface input devices 622 may include a keyboard, pointing devices such as a mouse, trackball, touchpad, or graphics tablet, a scanner, a touchscreen incorporated into the display, audio input devices such as voice recognition systems, microphones, and/or other types of input devices. In general, use of the term input device is intended to include all possible types of devices and ways to input information into computer system 610 or onto a communication network.
(45) User interface output devices 620 may include a display subsystem, a printer, a fax machine, or non-visual displays such as audio output devices. The display subsystem may include a cathode ray tube (CRT), a flat-panel device such as a liquid crystal display (LCD), a projection device, or some other mechanism for creating a visible image. The display subsystem may also provide non-visual display such as via audio output devices. In general, use of the term output device is intended to include all possible types of devices and ways to output information from computer system 610 to the user or to another machine or computer system.
(46) Storage subsystem 624 stores programming and data constructs that provide the functionality of some or all of the modules described herein. For example, the storage subsystem 624 may include the logic to perform selected aspects of method 400, and/or to implement one or more aspects depicted in
(47) Bus subsystem 612 provides a mechanism for letting the various components and subsystems of computer system 610 communicate with each other as intended. Although bus subsystem 612 is shown schematically as a single bus, alternative implementations of the bus subsystem may use multiple busses.
(48) Computer system 610 can be of varying types including a workstation, server, computing cluster, blade server, server farm, smart phone, smart watch, smart glasses, set top box, tablet computer, laptop, or any other data processing system or computing device. Due to the ever-changing nature of computers and networks, the description of computer system 610 depicted in
(49) While several implementations have been described and illustrated herein, a variety of other means and/or structures for performing the function and/or obtaining the results and/or one or more of the advantages described herein may be utilized, and each of such variations and/or modifications is deemed to be within the scope of the implementations described herein. More generally, all parameters, dimensions, materials, and configurations described herein are meant to be exemplary and that the actual parameters, dimensions, materials, and/or configurations will depend upon the specific application or applications for which the teachings is/are used. Those skilled in the art will recognize, or be able to ascertain using no more than routine experimentation, many equivalents to the specific implementations described herein. It is, therefore, to be understood that the foregoing implementations are presented by way of example only and that, within the scope of the appended claims and equivalents thereto, implementations may be practiced otherwise than as specifically described and claimed. Implementations of the present disclosure are directed to each individual feature, system, article, material, kit, and/or method described herein. In addition, any combination of two or more such features, systems, articles, materials, kits, and/or methods, if such features, systems, articles, materials, kits, and/or methods are not mutually inconsistent, is included within the scope of the present disclosure.