MLchartDataset catalogue

Patent · US2020218223A1 · A1 · US

Automatic Generation of Toolpaths

(11) Publication number
US2020218223A1
(21) Application number
16/751,972
(22) Filing date
2020-01-24
(30) Priority date
2017-06-01
(43) Publication date
2020-07-09
(51) IPC
B25J 9/16; G05B 19/402
(52) CPC
  • G05B Control or regulating systems in general; functional elements of such systems; monitoring or testing arrangements for such systems or elements: 19/402, 19/4083, 2219/31081, 2219/36405, 2219/36407, 2219/36415, 2219/36416, 2219/40512, 2219/40519, 2219/40564
  • B25J Manipulators; chambers provided with manipulation devices: 11/00, 15/0019, 9/1602, 9/1661, 9/1664, 9/1671, 9/1684, 9/1697
  • Y10S Technical subjects covered by former uspc cross-reference art collections [xracs] and digests: 901/41, 901/43, 901/46, 901/47
(73) Assignee
X Development LLC
(72) Inventors
Eli Reekmans; Marek Michalowski
(54) Title
Automatic Generation of Toolpaths
(57) Abstract

Example implementations relate to generating instructions for robotic tasks. A method may involve determining task information of a path-based task by an end-effector on an object, where the task information includes (i) at least one task parameter, and (ii) a nominal representation of the object. The method also involves based on the task information, determining one or more parametric instructions for the end-effector to perform the task, where the one or more parametric instructions indicate a toolpath for the end-effector to follow when performing the task. The method also involves generating, based on sensor data, an observed representation of the object, and comparing the observed and the nominal representations. The method further involves based on the comparison, mapping the parametric instructions to the observed representation of the object. The method yet further involves sending the mapped instructions to the end-effector to cause the robotic device to perform the task.

Full text
View on Google Patents

Claims (1)

  1. (canceled) 2. A method comprising: determining (i) a task to be performed on an object by a robotic device that includes an end effector, and (ii) a nominal representation of the object; based at least on the nominal representation of the object, determining a predetermined object manipulation or engagement command for the end-effector to follow in performing the task; generating, based on sensor data, an observed representation of the object; identifying one or more deviations between the observed representation of the object to the nominal representation of the object; adjusting the predetermined object manipulation or engagement command for the end-effector to follow in performing the task based at least on one or more of the deviations between the observed representation of the object and the nominal representation of the object; and sending data reflecting the adjusted object manipulation or engagement command to the robotic device. 3. The method of claim 2, wherein the predetermined object manipulation or engagement command is other than a command for the end-effector to follow a predetermined toolpath. 4. The method of claim 2, wherein adjusting the predetermined object manipulation or engagement command for the end-effector comprises adjusting a speed of an applicator. 5. The method of claim 2, wherein adjusting the predetermined object manipulation or engagement command for the end-effector comprises adjusting a pressure with which an applicator deposits an adhesive. 6. The method of claim 2, wherein adjusting the predetermined object manipulation or engagement command for the end-effector comprises adjusting a type of adhesive to deposit with an applicator. 7. The method of claim 2, wherein adjusting the predetermined object manipulation or engagement command for the end-effector comprises adjusting a tip size of a spray nozzle. 8. The method of claim 2, wherein adjusting the predetermined object manipulation or engagement command for the end-effector comprises adjusting an amount of time for which a spray nozzle is to dispense a material. 9. The method of claim 2, wherein adjusting the predetermined object manipulation or engagement command for the end-effector comprises adjusting a shape or pattern of a material to be deposited on the object. 10. The method of claim 2, wherein adjusting the predetermined object manipulation or engagement command for the end-effector comprises adjusting a smoothness of a material to be deposited on the object. 11. The method of claim 2, wherein adjusting the predetermined object manipulation or engagement command for the end-effector comprises adjusting a rotational speed of a sander. 12. The method of claim 2, wherein adjusting the predetermined object manipulation or engagement command for the end-effector comprises adjusting a pressure applied to the object by a sander. 13. The method of claim 2, wherein adjusting the predetermined object manipulation or engagement command for the end-effector comprises adjusting a pattern to be carved on the object by the end-effector. 14. The method of claim 2, wherein adjusting the predetermined object manipulation or engagement command for the end-effector comprises adjusting a size of the end-effector. 15. The method of claim 2, wherein adjusting the predetermined object manipulation or engagement command for the end-effector comprises adjusting a spacing between adjacent segments that are to be deposited on the object. 16. The method of claim 2, wherein adjusting the predetermined object manipulation or engagement command for the end-effector comprises adjusting a predetermined deburring operation to be performed by the end-effector. 17. The method of claim 2, wherein adjusting the predetermined object manipulation or engagement command for the end-effector comprises adjusting a predetermined polishing operation to be performed by the end-effector. 18. The method of claim 2, wherein adjusting the predetermined object manipulation or engagement command for the end-effector comprises adjusting a torque applied by the end-effector. 19. The method of claim 2, wherein identifying one or more deviations comprises identifying one or more material property deviations between the observed representation of the object and the nominal representation of the object. 20. A non-transitory computer-readable medium storing software comprising instructions executable by one or more computers which, upon such execution, cause the one or more computers to perform operations comprising: determining (i) a task to be performed on an object by a robotic device that includes an end effector, and (ii) a nominal representation of the object; based at least on the nominal representation of the object, determining a predetermined object manipulation or engagement command for the end-effector to follow in performing the task; generating, based on sensor data, an observed representation of the object; identifying one or more deviations between the observed representation of the object to the nominal representation of the object; adjusting the predetermined object manipulation or engagement command for the end-effector to follow in performing the task based at least on one or more of the deviations between the observed representation of the object and the nominal representation of the object; and sending data reflecting the adjusted object manipulation or engagement command to the robotic device. 21. A system comprising one or more computers and one or more storage devices storing instructions that are operable, when executed by the one or more computers, to cause the one or more computers to perform operations comprising: determining (i) a task to be performed on an object by a robotic device that includes an end effector, and (ii) a nominal representation of the object; based at least on the nominal representation of the object, determining a predetermined object manipulation or engagement command for the end-effector to follow in performing the task; generating, based on sensor data, an observed representation of the object; identifying one or more deviations between the observed representation of the object to the nominal representation of the object; adjusting the predetermined object manipulation or engagement command for the end-effector to follow in performing the task based at least on one or more of the deviations between the observed representation of the object and the nominal representation of the object; and sending data reflecting the adjusted object manipulation or engagement command to the robotic device.

Description

A robot may include one or more end-effectors that allow the robot to manipulate objects and one or more sensors that guide the manipulation of the objects. For example, a robot can use the end-effector(s) and sensor(s) to combine a plurality of objects into a desired physical structure.

A robotic device can control an end-effector to follow a particular toolpath in order to perform a task in connection with a target object. In practice, an end-effector generally follows a predefined trajectory, and therefore, if the target object deviates from its model, the end-effector following the predetermined trajectory is not likely to perform the task as desired. Disclosed herein is a system and method for generating instructions for an end-effector to perform a path-based task in connection with the target object. The instructions are generated based on a parametric model of the target object. In particular, the system can determine for the end-effector a parametric toolpath that is defined with respect to one or more features of the parametric model. Then, at runtime, the system can map the parametric toolpath to the features of the as-built target object. By defining the toolpath parametrically with respect to the object and/or worksite, and then mapping the toolpath to the as-built target object and/or worksite, the end-effector can perform the path-based task as desired even if the target object deviates from its model.

In one aspect, a method is provided.

Citations (15)

  • US5429682A
  • JPH0816225A
  • US20070000442A1
  • US20060181236A1
  • US20060156978A1
  • US20160156978A9
  • US20080243307A1
  • US20090167817A1
  • US20100186249A1
  • US20130150994A1
  • US9102055B1
  • US20150127149A1
  • US9604359B1
  • US9486921B1
  • US20180056670A1
Record as JSON
{
  "publication_number": "US2020218223A1",
  "country": "US",
  "kind": "A1",
  "title": "Automatic Generation of Toolpaths",
  "abstract": "Example implementations relate to generating instructions for robotic tasks. A method may involve determining task information of a path-based task by an end-effector on an object, where the task information includes (i) at least one task parameter, and (ii) a nominal representation of the object. The method also involves based on the task information, determining one or more parametric instructions for the end-effector to perform the task, where the one or more parametric instructions indicate a toolpath for the end-effector to follow when performing the task. The method also involves generating, based on sensor data, an observed representation of the object, and comparing the observed and the nominal representations. The method further involves based on the comparison, mapping the parametric instructions to the observed representation of the object. The method yet further involves sending the mapped instructions to the end-effector to cause the robotic device to perform the task.",
  "claims": [
    "1. (canceled) 2. A method comprising: determining (i) a task to be performed on an object by a robotic device that includes an end effector, and (ii) a nominal representation of the object; based at least on the nominal representation of the object, determining a predetermined object manipulation or engagement command for the end-effector to follow in performing the task; generating, based on sensor data, an observed representation of the object; identifying one or more deviations between the observed representation of the object to the nominal representation of the object; adjusting the predetermined object manipulation or engagement command for the end-effector to follow in performing the task based at least on one or more of the deviations between the observed representation of the object and the nominal representation of the object; and sending data reflecting the adjusted object manipulation or engagement command to the robotic device. 3. The method of claim 2, wherein the predetermined object manipulation or engagement command is other than a command for the end-effector to follow a predetermined toolpath. 4. The method of claim 2, wherein adjusting the predetermined object manipulation or engagement command for the end-effector comprises adjusting a speed of an applicator. 5. The method of claim 2, wherein adjusting the predetermined object manipulation or engagement command for the end-effector comprises adjusting a pressure with which an applicator deposits an adhesive. 6. The method of claim 2, wherein adjusting the predetermined object manipulation or engagement command for the end-effector comprises adjusting a type of adhesive to deposit with an applicator. 7. The method of claim 2, wherein adjusting the predetermined object manipulation or engagement command for the end-effector comprises adjusting a tip size of a spray nozzle. 8. The method of claim 2, wherein adjusting the predetermined object manipulation or engagement command for the end-effector comprises adjusting an amount of time for which a spray nozzle is to dispense a material. 9. The method of claim 2, wherein adjusting the predetermined object manipulation or engagement command for the end-effector comprises adjusting a shape or pattern of a material to be deposited on the object. 10. The method of claim 2, wherein adjusting the predetermined object manipulation or engagement command for the end-effector comprises adjusting a smoothness of a material to be deposited on the object. 11. The method of claim 2, wherein adjusting the predetermined object manipulation or engagement command for the end-effector comprises adjusting a rotational speed of a sander. 12. The method of claim 2, wherein adjusting the predetermined object manipulation or engagement command for the end-effector comprises adjusting a pressure applied to the object by a sander. 13. The method of claim 2, wherein adjusting the predetermined object manipulation or engagement command for the end-effector comprises adjusting a pattern to be carved on the object by the end-effector. 14. The method of claim 2, wherein adjusting the predetermined object manipulation or engagement command for the end-effector comprises adjusting a size of the end-effector. 15. The method of claim 2, wherein adjusting the predetermined object manipulation or engagement command for the end-effector comprises adjusting a spacing between adjacent segments that are to be deposited on the object. 16. The method of claim 2, wherein adjusting the predetermined object manipulation or engagement command for the end-effector comprises adjusting a predetermined deburring operation to be performed by the end-effector. 17. The method of claim 2, wherein adjusting the predetermined object manipulation or engagement command for the end-effector comprises adjusting a predetermined polishing operation to be performed by the end-effector. 18. The method of claim 2, wherein adjusting the predetermined object manipulation or engagement command for the end-effector comprises adjusting a torque applied by the end-effector. 19. The method of claim 2, wherein identifying one or more deviations comprises identifying one or more material property deviations between the observed representation of the object and the nominal representation of the object. 20. A non-transitory computer-readable medium storing software comprising instructions executable by one or more computers which, upon such execution, cause the one or more computers to perform operations comprising: determining (i) a task to be performed on an object by a robotic device that includes an end effector, and (ii) a nominal representation of the object; based at least on the nominal representation of the object, determining a predetermined object manipulation or engagement command for the end-effector to follow in performing the task; generating, based on sensor data, an observed representation of the object; identifying one or more deviations between the observed representation of the object to the nominal representation of the object; adjusting the predetermined object manipulation or engagement command for the end-effector to follow in performing the task based at least on one or more of the deviations between the observed representation of the object and the nominal representation of the object; and sending data reflecting the adjusted object manipulation or engagement command to the robotic device. 21. A system comprising one or more computers and one or more storage devices storing instructions that are operable, when executed by the one or more computers, to cause the one or more computers to perform operations comprising: determining (i) a task to be performed on an object by a robotic device that includes an end effector, and (ii) a nominal representation of the object; based at least on the nominal representation of the object, determining a predetermined object manipulation or engagement command for the end-effector to follow in performing the task; generating, based on sensor data, an observed representation of the object; identifying one or more deviations between the observed representation of the object to the nominal representation of the object; adjusting the predetermined object manipulation or engagement command for the end-effector to follow in performing the task based at least on one or more of the deviations between the observed representation of the object and the nominal representation of the object; and sending data reflecting the adjusted object manipulation or engagement command to the robotic device."
  ],
  "description_excerpt": "A robot may include one or more end-effectors that allow the robot to manipulate objects and one or more sensors that guide the manipulation of the objects. For example, a robot can use the end-effector(s) and sensor(s) to combine a plurality of objects into a desired physical structure.\n\nA robotic device can control an end-effector to follow a particular toolpath in order to perform a task in connection with a target object. In practice, an end-effector generally follows a predefined trajectory, and therefore, if the target object deviates from its model, the end-effector following the predetermined trajectory is not likely to perform the task as desired. Disclosed herein is a system and method for generating instructions for an end-effector to perform a path-based task in connection with the target object. The instructions are generated based on a parametric model of the target object. In particular, the system can determine for the end-effector a parametric toolpath that is defined with respect to one or more features of the parametric model. Then, at runtime, the system can map the parametric toolpath to the features of the as-built target object. By defining the toolpath parametrically with respect to the object and/or worksite, and then mapping the toolpath to the as-built target object and/or worksite, the end-effector can perform the path-based task as desired even if the target object deviates from its model.\n\nIn one aspect, a method is provided.",
  "cpc": [
    "G05B 19/402",
    "B25J 11/00",
    "B25J 15/0019",
    "B25J 9/1602",
    "B25J 9/1661",
    "B25J 9/1664",
    "B25J 9/1671",
    "B25J 9/1684",
    "B25J 9/1697",
    "G05B 19/4083",
    "G05B 2219/31081",
    "G05B 2219/36405",
    "G05B 2219/36407",
    "G05B 2219/36415",
    "G05B 2219/36416",
    "G05B 2219/40512",
    "G05B 2219/40519",
    "G05B 2219/40564",
    "Y10S 901/41",
    "Y10S 901/43",
    "Y10S 901/46",
    "Y10S 901/47"
  ],
  "ipc": [
    "B25J 9/16",
    "G05B 19/402"
  ],
  "assignees": [
    "X Development LLC"
  ],
  "inventors": [
    "Eli Reekmans",
    "Marek Michalowski"
  ],
  "filing_date": "2020-01-24",
  "publication_date": "2020-07-09",
  "priority_date": "2017-06-01",
  "application_number": "US-202016751972-A",
  "family_id": "64455440",
  "cited_by_count": 4,
  "citations": [
    "US5429682A",
    "JPH0816225A",
    "US20070000442A1",
    "US20060181236A1",
    "US20060156978A1",
    "US20160156978A9",
    "US20080243307A1",
    "US20090167817A1",
    "US20100186249A1",
    "US20130150994A1",
    "US9102055B1",
    "US20150127149A1",
    "US9604359B1",
    "US9486921B1",
    "US20180056670A1"
  ]
}

Record 2,075 of 8,000 in Patents full text (MLC-0201). Request the full dataset.