Systems, methods, and apparatus for sharing tool manufacturing and design data

The system, which combines sensors and cameras, solves the problem of difficult tool positioning on materials, enabling accurate tool positioning and automatic guidance on material surfaces. This improves the accuracy and efficiency of operations and simplifies the detection and cutting process of complex edges.

CN122044076APending Publication Date: 2026-05-15SHAPING TOOLS CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
SHAPING TOOLS CO LTD
Filing Date
2017-08-18
Publication Date
2026-05-15

AI Technical Summary

Technical Problem

In existing technologies, it is difficult for users to manually follow visual guidance to position tools on materials, especially when determining the position of the tool on the material, particularly for the edges of planes, such as the edges of rectangles or smooth contours.

Method used

The system and methods employed include sensors, cameras, and positioning logic. By detecting the position of the tool on the material, the tool is moved automatically or semi-automatically to accurately reach the desired coordinates. The material surface is measured using probes and lateral probing techniques. Force sensors and vision cameras are used to determine the position of the tool tip. A digital template of the tool is generated, and dust generated during cutting is removed using a vacuum cleaner.

Benefits of technology

It enables accurate positioning and automatic guidance of the tool on the material surface, improving the accuracy and efficiency of tool operation, reducing dust interference, and simplifying the detection and cutting process of complex edges.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN122044076A_ABST
    Figure CN122044076A_ABST
Patent Text Reader

Abstract

The disclosure relates to systems, methods, and apparatus for sharing tool manufacturing and design data. A position sensing tool for effecting topographic measurements of a working surface is provided. The tool includes sensors for mapping a tool environment and for positioning the tool in the environment. The tool enables tracking of tool activity within an environment. The tool enables design and manufacturing collaboration with other computer systems. The tool uses tool positioning, user location, and tool environment awareness to achieve safety of the user and tool environment. Certain embodiments of the tool allow for automatically booting tasks in a tool environment.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] This application is a divisional application of the invention patent application filed on August 18, 2017, with application number 202210543368.7 and entitled "System, method and apparatus for sharing tool manufacturing and design data".

[0002] Cross-reference to related applications

[0003] This application claims priority to U.S. Provisional Patent Application No. 62 / 377,482, filed August 19, 2016; U.S. Provisional Patent Application No. 62 / 509,159, filed May 21, 2017; and U.S. Provisional Patent Application No. 62 / 509,162, filed May 21, 2017, all of which are incorporated herein by reference in their entirety. Background Technology

[0004] Visual guides drawn on the material may be difficult for users to follow manually. In addition, it may be difficult to determine the position of the tool on the material. Summary of the Invention

[0005] The apparatus, systems, and methods disclosed herein facilitate the guidance of tools. In some embodiments, the system includes a drill or frame having a worktable that can be positioned on the surface of a piece of material such as wood. The tool may be electrically or mechanically coupled to the frame, and the frame, together with the tool, may pass through the material. The system may include sensors, cameras, or positioning logic to determine the position of the tool on the material and accurately move the frame, worktable, or tool (or provide instructions for user movement) to desired coordinates on the material.

[0006] Manufacturing or production operations may include working on or with a piece of material having at least one plane, such as cutting a shape from a piece of plywood. However, determining the location of the edges of the plane can be challenging for tools; the edges may be rectangular, such as in plywood, or they may be smooth contours, such as the edges of a 2D template. The systems, methods, and apparatus of this solution relate to systems for detecting the shape and / or location of edges.

[0007] The tool can be configured with one or more technologies to guide the tool's working component or drill bit. For example, the tool may include a probe and be configured with lateral probing technology that measures the surface of the material or workpiece, or establishes reference points on or relative to the workpiece. The tool can probe one or more points on the workpiece profile to digitize a template. The tool can probe one or more points on the profile to scan the edges of the workpiece material before and after flipping to align with a plan for double-sided machining. The tool can probe one or more points on the profile to generate a mesh overlay.

[0008] In some embodiments, the system may include a handheld tool coupled to a digital processor. The handheld tool may include a physical element with known or approximately known geometry, such as a probe. In addition to serving as a probe such as a drill bit, the probe may also be part of a tool used for some other capability besides detection. Using one or more sensors, the system can determine and store the 3D position or location of the probe in an arbitrary coordinate system. The system can determine the position by detecting the position of the tool frame and using an offset from the tool frame to the probe, or the system can directly detect the position.

[0009] In some embodiments, the system can detect material edges by moving a handheld tool to a location where the probe geometry contacts the edge. The system can receive an indication of contact between the probe geometry and the material edge. The indication can be via the tool's interface, such as a button, or the system can automatically detect the contact. The system can store the contact points in memory. The system or tool can sample one or more contact points or edges of the material. The handheld tool can also move along a 3D path, during which the handheld tool contacts the edge in some time intervals and does not contact the edge in other time intervals.

[0010] In some embodiments, the surface of the material can be marked with location markers that facilitate the detection of the location of a tool, working component, or sensor relative to the material surface. Location markers can be designed or configured to facilitate simple, rapid, and reliable detection by the tool's sensors. In some embodiments, location markers can include binary images or be constructed in a manner that can be easily converted to binary images. For example, location markers can include reference markers detectable with minimal computational power, such as black-and-white images that can represent dominoes.

[0011] In some embodiments, this disclosure relates to a system, method, or apparatus for guiding or removing dust generated while performing a task on a material surface. For example, when a cutting tool is cutting a material such as wood, sawdust may be generated that makes it difficult for the tool to detect marks that may be placed on the material surface. The tool of this disclosure includes a cavity in which dust generated by cutting the material can be guided. For example, the cavity may include a gap in the tool frame, and a fan of the tool may direct the dust towards the cavity. Furthermore, a vacuum cleaner may be coupled to the tool so that the dust can be extracted via channels.

[0012] In some embodiments, this disclosure relates to a system, method, or apparatus for determining the position of a tool relative to a work surface. The system, method, or apparatus can determine changes in force exerted by the tip of a tool (e.g., a cutting drill bit) to determine when the tip of the cutting tool contacts or presses against a surface of material. For example, the tip of the tool may be in a first position not in contact with the work surface. The tip may gradually move to a second position in contact with the material surface. As the tip of the tool moves to the second position, the system, method, or apparatus can determine changes in force that indicate the tool tip is contacting the material surface. For example, the force applied to the tool base may be smaller because some force is dissipated from the tool tip by the base.

[0013] At least one aspect of this disclosure relates to a system for position detection of a calibration tool. The system may include a base coupled to the tool. The base may contact a work surface. The system may include a computing device having one or more processors. The system may include sensors communicatively coupled to the computing device. The system may include a motor controlled by the computing device. The computing device may identify a first value of a parameter via the sensor, indicating the amount of force applied to the work surface by a portion of the base. The computing device may instruct the motor to extend a work member toward the work surface. When the work member contacts the work surface, the computing device may identify a second value of the parameter via the sensor. The computing device may compare the first value of the parameter with the second value of the parameter to generate a difference between the first and second values. The computing device may determine the z-axis position of the work member relative to the work surface in response to the difference between the first and second values ​​being greater than a threshold.

[0014] At least one aspect of this disclosure relates to a method for evaluating the position of a working member of a tool. The method may include a sensor communicatively coupled to a computing device including one or more processors, which detects a first value of a parameter indicating the amount of force applied to a working surface by a portion of the tool's base. The method may include a motor controlled by one or more processors of the tool, which extends the working member toward the working surface. The base may at least partially contact the working surface. The method may include a second value of the parameter detected by the sensor when the working member contacts the working surface. The second value of the parameter may be less than the first value of the parameter. The method may include the computing device determining the z-axis position of the working member relative to the working surface in response to a difference between the first and second values ​​being greater than a threshold.

[0015] At least one aspect relates to a system for positioning a working member of a tool. The system may include a base coupled to the tool. The system may include a computing device including one or more processors. The system may include sensors communicatively coupled to the computing device. The system may include a motor controlled by the computing device. The system may include a computing device configured to identify, via the sensors, a first value of a parameter indicating the amount of force applied by a portion of the base toward a working surface. The computing device may instruct the motor to extend the working member toward the working surface. The computing device may identify a second value of the parameter via the sensors when the working member is in contact with the working surface. The computing device may compare the first value of the parameter with the second value of the parameter to identify the difference between the first and second values. The computing device may determine the z-axis position of the working member relative to the working surface based on the difference between the first and second values ​​being greater than a threshold.

[0016] At least one aspect relates to a method for positioning a working member of a tool. The method may include detecting a first value of a parameter indicating a first vertical position of the tool's base via a sensor communicatively coupled to a computing device including one or more processors. The method may include extending the working member toward a working surface via a motor controlled by the computing device. The method may include detecting a second value of a parameter indicating a second vertical position of the tool's base via a sensor when the working member is in contact with the working surface. The method may include comparing the first value of the parameter with the second value of the parameter by the computing device to determine a change in the vertical position of the tool's base. The method may include determining the z-axis position of the working member relative to the working surface by the computing device based on the change in the vertical position of the tool's base.

[0017] At least one aspect relates to a system for positioning a working member of a tool. The system may include a base coupled to the tool. The system may include a computing device including one or more processors. The system may include one or more sensors communicatively coupled to the computing device. The system may include one or more motors controlled by the computing device. The computing device may determine the z-axis position of the working member via the one or more sensors. The computing device may provide motor control information, at least in part, based on the z-axis position of the working member, to control one or more motors to move the working member from a first location to a second location, the tool advancing in a direction within an adjustment range (e.g., compensation radius, compensation range) adjacent to a predetermined path of the working member of the tool.

[0018] At least one aspect relates to a system for positioning a working member of a tool. The system may include a base coupled to the tool. The system may include a computing device including one or more processors. The system may include one or more sensors communicatively coupled to the computing device. The system may include one or more motors controlled by the computing device. The system may include a cavity of the tool for moving particles of material removed from a working surface by the working member. The computing device may determine a first location of the working member based on first information received via the one or more sensors. The computing device may compare the first location of the working member with a predetermined path to determine a second location of the working member of the tool corresponding to the path. The computing device may provide motor control information based on the second location to control one or more motors to move the working member from the first location to the second location, the tool advancing in a direction within an adjustment range adjacent to the predetermined path of the working member of the tool, the cavity being configured to move particles of material in a direction opposite to the direction of tool advancement.

[0019] Embodiments of this disclosure include tracking the use of a drilling rig having one or more actuators to move an adapter for holding a working member. The systems, methods, and computer-readable media described herein: receiving a digital design from a first computer system; determining a desired path for a component of the drilling rig based on the digital design; obtaining position information of the component as the working member moves relative to a working surface; and transmitting tracking data to a second computer system based on the position information.

[0020] Embodiments of this disclosure include using a drilling rig to achieve collaboration, the drilling rig having one or more actuators to move an adapter for holding a working component. The systems, methods, and computer-readable media described herein: acquiring information related to a working surface; transmitting the collected information to a first computer system; receiving second information from a second computer system, wherein the second information is based on the first information; and determining a desired path for components of the drilling rig, at least in part, based on the second information.

[0021] Embodiments of this disclosure include determining information related to the working surface of a drilling rig. The systems, methods, and computer-readable media described herein: obtaining first data related to the working surface; obtaining second data related to the working surface when a working component is in contact with an edge of the working surface; determining the position of components of the drilling rig; and determining the location of the edge of the working surface.

[0022] Embodiments of this disclosure include controlling a drilling rig having one or more actuators to move an adapter for holding a working component. The systems, methods, and computer-readable media described herein: collecting first data related to a working surface; determining the position of components of the drilling rig; evaluating one or more triggering rules using the position of the components; and triggering one or more actions based on the evaluation.

[0023] Embodiments of this disclosure include facilitating the use of a drilling rig having one or more actuators to move an adapter that holds a working member. The systems, methods, and computer-readable media described herein: capturing an image of a thin film on a working surface; determining a desired path for the adapter based on the edges of the thin film in the captured image; and providing actuator control information to move the adapter along a first direction, which is different from the second direction, when a user moves to the right along a second direction, and the desired path determines the movement of the adapter. Attached Figure Description

[0024] Figure 1 These are illustrative examples of embodiments of a device for an automated guide tool.

[0025] Figure 2 This is an illustrative example of an embodiment of an automated guidance tool for following a target path area and performing tasks according to a planned design.

[0026] Figure 3 This is an illustrative block diagram of an embodiment of a system for an automated boot tool.

[0027] Figure 4 This is an illustrative flowchart of an embodiment of a method for an automated bootstrapping tool.

[0028] Figure 5 This is an illustrative flowchart of an embodiment of a method for an automated bootstrapping tool.

[0029] Figure 6 This is a block diagram illustrating the overall architecture of a computer system according to embodiments, comprising various elements that can be used to implement the systems, apparatus, and methods disclosed herein.

[0030] Figures 7A-7B This is an illustrative diagram showing the location markings of various elements that can be used to implement the systems, apparatus and methods disclosed herein, according to embodiments.

[0031] Figures 8A-8B These are illustrative examples of embodiments of a device for guiding or extracting dust particles, which can be used to implement various elements of the systems, apparatuses, and methods disclosed herein.

[0032] Figures 9A-9B This is an illustrative example of a top perspective view of an embodiment of a substrate for guiding or extracting dust particles, which can be used to implement various elements of the systems, apparatuses and methods disclosed herein.

[0033] Figure 9C This is an illustrative example of a bottom perspective view of an embodiment of a substrate for guiding or extracting dust particles, which can be used to implement various elements of the systems, apparatuses and methods disclosed herein.

[0034] Figure 9D This is an illustrative example of a top perspective view of an embodiment of a substrate for guiding or extracting dust particles, which can be used to implement various elements of the systems, apparatuses and methods disclosed herein.

[0035] Figures 10A-10B These are illustrative examples of embodiments of a system for determining the location of a tool tip, which can be used to implement various elements of the systems, apparatuses, and methods disclosed herein.

[0036] Figure 10C-10D This is an illustrative example of an embodiment of a force sensor positioned on a device to determine the location of a tool tip, which can be used to implement various elements of the systems, apparatuses, and methods disclosed herein.

[0037] Figure 11A-11B These are illustrative examples of using various elements of the systems, apparatuses, and methods disclosed herein to direct or extract dust particles according to embodiments.

[0038] Figure 12 This is an illustrative example of a block diagram depicting a method for working components of a positioning tool according to an embodiment.

[0039] Figure 13 A front view of the tool according to an embodiment is depicted.

[0040] Figure 14 A front view of a tool without attached working components according to an embodiment is depicted.

[0041] Figure 15 A side view of a tool with a working component attached, according to an embodiment, is provided.

[0042] Figure 16 A side view of a tool without attached working components, according to an embodiment, is provided.

[0043] Figure 17 A rear view of a tool with a working component attached, according to an embodiment, is provided.

[0044] Figure 18 A rear view of a tool without attached working components, according to an embodiment, is provided.

[0045] Figure 19 A top view of a tool with a working component attached, according to an embodiment, is provided.

[0046] Figure 20 A top view of a tool without attached working components, according to an embodiment, is provided.

[0047] Figure 21 A bottom view of the internal worktable and pivot components of the tool according to an embodiment is provided.

[0048] Figure 22 A system for a boot tool according to an embodiment is described.

[0049] Figure 23 A flowchart for a boot tool according to an embodiment is depicted.

[0050] Figure 24 This is a diagram illustrating edge detection according to an embodiment.

[0051] Figure 25 This is a diagram illustrating edge detection according to an embodiment.

[0052] Figure 26 This is a diagram illustrating edge detection according to an embodiment.

[0053] Figure 27 This is a diagram illustrating a spiral tool path generated by the system according to an embodiment.

[0054] Figure 28A -D is a diagram illustrating the tool according to an embodiment.

[0055] Figure 29 These are exemplary logs in an automated boot system and exemplary logs in a computer system according to embodiments.

[0056] Figures 30A-30D These are a series of illustrations showing the use of a thin film to define a template according to an embodiment.

[0057] Figure 31 This is an exemplary network connection diagram of six computer systems according to an embodiment. Detailed Implementation

[0058] This disclosure generally relates to systems and methods for working on surfaces such as woodworking or printing surfaces. In some embodiments, this disclosure relates to determining the location of a tool relative to the surface of a material and using that location to guide, adjust, or automatically correct the tool along a predetermined path or design scheme (such as, for example, a cutting or drawing path). In some embodiments, the reference location may correspond to a design or scheme obtained from a remote computer system.

[0059] Manufacturing or production operations may include working on or with a piece of material having at least one plane, such as cutting a shape from a piece of plywood. However, determining the location of the edges of the plane can be challenging for tools; the edges may be rectangular, such as in plywood, or they may be smooth contours, such as the edges of a 2D template. The systems, methods, and apparatus of this solution relate to systems for detecting the shape and / or location of edges.

[0060] The tool can be configured with one or more technologies to guide the tool's working component or drill bit. For example, the tool may include a probe and be configured with lateral probing technology that measures the surface of a material or workpiece, or establishes reference points on or relative to the workpiece. The tool can probe one or more points on the workpiece profile to digitize a template. The tool can probe one or more points on the profile to scan the edges of the workpiece material before and after flipping to align the scheme for double-sided machining. The tool can probe one or more points on the profile to generate a mesh overlay.

[0061] In some embodiments, the system may include a handheld tool coupled to a digital processor. The handheld tool may include a physical element with known or approximately known geometry, such as a probe. In addition to serving as a probe such as a drill bit, the probe may also be part of a tool used for some other capability besides detection. Using one or more sensors, the system can determine and store the 3D position or location of the probe in an arbitrary coordinate system. The system can determine the position by detecting the position of the tool frame and using an offset from the tool frame to the probe, or the system can directly detect the position.

[0062] In some cases, this disclosure can facilitate the evaluation of the position of the working component of a tool. Evaluating the position of the working component may include, for example, determining the geometry of the cutting tool or the geometry of the workpiece (e.g., the working surface).

[0063] Determining the geometry of a tool may include or reference determining the position of the tool tip (e.g., the working piece) relative to a reference frame of the tool. Determining the tool geometry may include or reference determining the diameter of the cutting tool. Tool geometry information can be used to automatically determine the length of the cutting groove of the working piece and the angle of the cutter (e.g., V-shaped engraving drill bit or helix angle).

[0064] Determining the geometry of a workpiece can include determining or measuring the thickness of the material to be cut, or creating a topographic map of the surface by repeatedly probing with the tip of a tool. The tool can also pinpoint the location of features of interest, such as holes in the workpiece.

[0065] This disclosure allows the use of one or more techniques to determine the position (e.g., tool height) of a working component or tool tip relative to a reference frame of the tool. For example, a tool may include a tool tip or working component and a base. The base of the tool may rest on and contact a work surface. Techniques for determining the position of the tool tip may include extending or lowering the tool tip onto the work surface (or a convenient flat surface such as a table) while measuring the weight on the base of the tool. When the tool tip contacts the work surface, weight can be transferred to the tool tip and away from the base of the tool as the cutting tool undergoes additional downward movement. The tool can detect this reduction in weight on the base via a weight sensor within the base. This technique can provide improved accuracy in determining the position of the tool tip because the tool tip position can be determined within a fraction of the tool travel required to lift the base of the tool away from the work surface. In some cases, where the tool tip may be very sharp, the tool tip may sink or penetrate a distance into the work surface (e.g., wood) before generating sufficient force to lift the tool. However, since the weight sensor can be configured to detect even small reductions in force (e.g., 1%, 2%, 3%, 5%, 0.5%, 0.1%, or 10% of the force applied to the material by the tool or base before the tool tip contacts the work surface), the tool can detect the change in force when the tool tip contacts the work surface, even if the tool tip is to at least partially enter the work surface.

[0066] Furthermore, this technology can be used to determine the position of the tool tip without requiring absolute calibration of the weight sensor, as the tool can determine its position based on detected changes in force. Therefore, inexpensive and uncalibrated force sensors can be used to determine the position of the tool tip. Examples of force sensors can include force-sensitive resistors, capacitive force sensors, high-pass sensors, or piezoresistive sensors.

[0067] The tool can detect when the tool tip or working component contacts or becomes contact with a working surface by detecting, noticing, determining, or otherwise identifying a lift of the base. The lift of the base can be relatively small (e.g., a reduction in force on a force sensor of 0.1%, 0.5%, 1%, 2%, 5%, 10%, 15%, 20%, or some other percentage based on the resolution or granularity of the force sensor). In some cases, the tool can detect the lift based on the tilt of the base (e.g., 1 degree, 2 degrees, 5 degrees, 10 degrees, 15 degrees, 25 degrees, or some other detectable tilt). The tool can use a camera, visual information, or an inertial measurement unit (IMU, including one or more accelerometers, gyroscopes, or magnetometers) to detect the tilt. For example, a camera can determine a displacement in a captured image that corresponds to a tilt caused by a lift of the base. The camera can take a first picture or image before the tool tip contacts the working surface and then take a second image when the tool tip contacts the working surface. The camera can compare the first image with the second image to identify the tilt or change between the two images. The IMU can indicate tilt in response to movement or sudden movement caused by the base being lifted. In some embodiments, the tool may include a force sensor in the tool holder to directly measure the force on the cutting tool tip.

[0068] The tool can determine or detect additional information about the tool, including the position, diameter, or geometry of the tip or working component. For example, the tool may include a break-beam sensor (e.g., a laser beam-breaking sensor, an infrared beam-breaking sensor, a photoelectric sensor, or an optical sensor). The working component can fall within the sensor's line of action, and the tool can detect the position of the working component when it breaks the light beam. In some cases, the beam axis can be pre-calibrated relative to the tool's coordinate system. However, accurately detecting the tip position using this technique can be challenging based on the tip geometry (e.g., if the tip shape is not flat).

[0069] Tools can use capacitive or electromagnetic sensors to determine the proximity of the tool tip to the work surface. For example, an electromagnetic sensor can sense or detect changes in the inductance of a sensing coil near a tool tip or workpiece that includes metal by sensing eddy currents induced in metal.

[0070] Another approach is to use a vision camera on the aiming tool to determine the position of the working component or tool tip. The vision camera can be pre-calibrated to the tool coordinate system to detect the tool tip. In some cases, the vision camera may include a linear charge-coupled device (CCD) sensor or other image sensors. Linear CCD sensors can detect tool tips using less processing than vision cameras.

[0071] The tool can use one or more of these techniques to measure its diameter. When measuring or determining the position of the tool tip, the tool tip can be moved around. By moving the tool tip, the tool can detect its diameter using a single beam-interrupting sensor by moving the tool from left to right through the sensor. Lateral movement of the tool can cause an initial interruption, and then leave the light unobstructed to provide a measurement of the tool diameter. Since milling drill bits can have helical flutes, the tool can perform multiple measurements along the length of the tool to determine the diameter. The tool can use eddy currents or utilize capacitive sensing of a one-dimensional sensor to determine the diameter, collecting multidimensional information about the tool geometry by correlating sensor data with the tool position. The tool can determine additional information about the tool tip, such as the tip angle in the case of a V-cut drill bit. Furthermore, the tool can include a vision camera to detect the tool's geometric characteristics.

[0072] A tool can measure the geometry of a working surface by associating the position of its tool tip with the position of the device on the plane of the working surface. To do this, the tool (e.g., a cylindrical tool with a conical or spherical tip) can first be correlated with a reference frame of the tool by detecting the position of its tool tip. Once the position of the tool tip relative to the reference frame is known, the tool can be laterally positioned on the surface of interest (e.g., the working surface) to determine its vertical position. The vertical position of the working surface may refer to a groove, cavity, indentation, or recess at a depth of interest in a piece of wood. The tool tip can then be inserted, extended, lowered, recessed, or otherwise moved until it contacts the bottom of the groove. Additional displacement of the tool tip beyond the top portion of the surface on the working surface where the tool tip initially contacts indicates the depth of the groove. If the surface profile of the groove is of interest, the tool can be moved around the groove to multiple points. The tool can determine the depth at each of these points. The tool can record its depth and lateral position (e.g., x, y, and z coordinates, where the x and y coordinates can indicate the lateral position and the z coordinate can indicate the depth). Lateral movements can be performed automatically using the built-in positioning table, manually by the user, or a combination of both.

[0073] Another potential application could be finding the center position of a hole on a work surface. A tool with a tapered tip can be fitted into the device. The tool can then be positioned approximately above the center of the hole (e.g., within 5%, 10%, 15%, 20%, 25%, 30%, 50%, 75%, or 90% of the hole's diameter) and recessed until the tip contacts the circle of the hole. Because the tool tip can be tapered, it allows the tool to be centered on the hole. The tool can then be positioned to determine the hole's location using, for example, a vision system to determine its lateral position (e.g., x and y coordinates).

[0074] The tool can determine the thickness of a work surface or other block of material. Using the determined thickness of the work surface, the tool can automatically set the cutting depth or update the cutting path, which may depend on the material thickness (e.g., a box joint where the length of the fingers corresponds to the thickness of the mating material). The tool can determine or measure the thickness of the material by suspending or placing the tool or a portion thereof above the edge of the work surface or material, and then extending the tool tip until it contacts the surface supporting the material. The depth to which the tool tip extends beyond the top of the work surface to contact the surface supporting the work surface indicates the thickness of the work surface.

[0075] The tool can use location markers, including contour trees, binary images, reference marks, or dominoes, to determine the position of the tool or tool tip relative to the surface of the work material. This disclosure facilitates the guiding and extraction of dust from a portion of the tool by generating an airflow that guides dust through one or more channels in a portion of the tool. This disclosure aids in determining the height of the tool tip using a force sensor that detects a decrease in force when the tool tip contacts the material.

[0076] Using the determined information, a tool can be configured to guide its working component to perform a task on a target material (e.g., a work surface). In some embodiments, the system can automatically guide the tool to perform the task. For example, in some embodiments, this disclosure provides a handheld system capable of identifying the location of a tool or a drill containing the tool relative to the material being processed. In some embodiments, the device can be non-handheld; for example, the device can be located on a mobile platform, such as a remotely controlled platform, a robotic platform, or other types of mobile platforms that may or may not be controlled. The system can adjust the location of the tool based on or in response to the tool's current location and a desired location corresponding to a design scheme (or provide instructions for adjusting the location of the tool). In some embodiments, the system includes a handheld device with a hand-operated working instrument that can be precisely adjusted in location based on spatial position to provide an accurate path for the working instrument's movement.

[0077] In some embodiments, the systems and methods disclosed herein may include a location detection system or perform one or more location detection techniques that can accurately, robustly, or with low latency detect the current location or position of a tool on a target material. For example, a video or still image camera coupled to the tool and an accompanying control circuitry system may be used to scan the surface of the material and process the scan data or scanned image data to generate a digital map of the material surface before performing a task on the material. When the tool is brought close to the material surface during a task on the material, the camera may capture a second image and compare the second image with the digital map to detect the location of the tool relative to the material.

[0078] In some embodiments, various location detection technologies can be used, including, for example, integrated wireless location sensing technologies such as RF, near-field communication, Bluetooth, laser tracking and sensing, or other suitable methods for determining the tool's location. This facilitates guiding or adjusting the tool's position to perform a task. In some embodiments, the system may include a hybrid location detection system that employs two or more location detection technologies to determine the tool's location. For example, each location detection technology may include orthogonal strength and weakness, but when combined, location can be detected with high accuracy and low latency. For example, a first location detection technology may be highly accurate but low-frequency (e.g., a sensor configured to acquire data once per second, which accurately determines location but has a high latency). The first location detection technology may be combined with a second location detection technology, which includes a sensor that provides location information at high frequency and high accuracy but provides limited information (e.g., an optical mouse sensor with high frequency and high accuracy but only provides dead-reckoning, including the direction and speed of movement, but not the tool's location in the global environment). In the illustrative example, the hybrid location detection system can use a camera to acquire images to accurately determine the tool's position on a material surface, and then use an optical mouse sensor to track changes in position until the next frame of the image arrives. In this example, the second location detection technique using an optical mouse sensor cannot provide all location tracking because integrating speed to determine position may accumulate errors over time, or the device may fail to determine its location if it is picked up and placed in different locations.

[0079] In some embodiments, to generate a map prior to cutting or drawing operations, a user can scan the surface of a material with a camera until the camera has acquired a complete, substantially complete, or partial image of the material surface or a desired portion thereof. The system can acquire these images and stitch them together to produce a stitched map. Generating digital map images and detecting locations can include, for example, one or more image processing techniques, pattern recognition techniques, localization techniques, and computer vision techniques. For example, the system can identify that points A and B in a first image correspond to points C and D in a second image and stitch the two images together accordingly. For example, on a wood surface, the system can identify variations, bright spots, color variations, markings, reference marks, binarized images, or wood grain in the images and compare them with a digital map to determine locations. In another example, the system may also use corners, sides, lighting patterns, or other signals capable of identifying locations.

[0080] Materials can be marked to facilitate mapping the location of material surfaces or detection tools on or near the material. For example, the surface of materials such as metals or plastics may not contain sufficient identifying markings to accurately detect locations. Distinguishing markings or labels can be added to materials to facilitate location detection techniques such as pattern recognition or image processing. Markings can include any type of material capable of facilitating location detection techniques, ink, stripes, light, lasers, engraving, carving, temperature gradients, or invisible ink (e.g., ink visible only under ultraviolet light or other wavelengths of light). In some embodiments, markings include strips that can be applied to at least a portion of the target material surface. For example, strips can include symbols such as, for example, unique barcodes, designs, patterns, colors, carvings, raised bumps, or depressions. In some embodiments, markings can include random marks made on the target material by a user with a pen, pencil, ink, invisible ink, paint, crayon, or any other marking or writing instrument.

[0081] In addition to generating digital images of material surfaces, in some embodiments, the system can identify cut or drawing designs on the material surface. Designs can include any cut or drawing desired by the system's user. For example, designs can include freehand designs, tracings, pictures, images, designs generated using computer-aided design (“CAD”) software, purchased designs, or purchased electronic designs. Designs can also be designs for objects that tools can create by performing operations on materials, such as designs for tables that can be cut from at least one piece of wood.

[0082] The system can merge design schemes with map images or otherwise correlate design schemes with maps of material surfaces or overlay design schemes onto map images. In some embodiments, design schemes can be drawn on the surface of the material before or after generating an initial map of the material (e.g., using a special pen whose ink can be detected by the system using ultraviolet light or other wavelengths). For example, if the surface of the material includes a design (e.g., a cutting design or a drawing design) during the initial mapping stage, the system can process the image to identify the design scheme and include it in a digital map of the material surface. If the design is drawn or otherwise marked on the surface of the material after generating the initial map, the system can obtain an image of the material with the design by rescanning or capturing a new image of the material using a camera. If the design is drawn or otherwise marked on the surface of the material before generating the initial map, the system can identify the design as a cutting or drawing design scheme, or the user can indicate to the system that the identified design is a cutting or drawing design scheme.

[0083] In some embodiments, a digital design can be added to a digital map of a material surface without physically adding the design to the material surface or otherwise labeling the actual material with the design. For example, the digital design can be generated on a computer and can include CAD drawings, vector drawings (e.g., SVG, DXF), or any other type of drawing (e.g., JPEG, BMP, or GIF). For example, using CAD software, a user can modify a map image by adding design options. Any other suitable software can be used to incorporate design options onto a map image or otherwise correlate design options with a map of the material surface (e.g., data indicating the location of design options used to facilitate tasks performed on the material). After registering the design on a digital map or digital map image, the system can provide the tool with corresponding digital map data or digital image data containing the design options. In some embodiments, the system can display a map image containing the design on the tool's display device to facilitate user tasks performed on the material. In some embodiments, the tool can perform tasks based on a design option without displaying the design option (e.g., the tool can automate aspects of the task, or the tool may not include a display device).

[0084] In some embodiments, a digital design can be specified using vector graphics (e.g., Scalable Vector Graphics (SVG) files, DXF files). In some embodiments, design features can be paths or basic shapes used in SVG format. In some embodiments, a path for cutting a drill bit can be generated using a digital design in SVG format, wherein the path also uses SVG format—in some embodiments including paths or basic shapes used in SVG format.

[0085] During a cutting or drawing operation, the user can place the tool on or near a material surface. While the tool is placed on the surface, a camera can rescan or capture an image of a portion of the material surface. This image may correspond to a portion of the material located at a different location than the cutting or drawing tool. The system can determine the tool's location relative to the material surface or design by comparing identification markers in the new image with identification markers in a map image generated prior to performing the task on the material. The camera can be mounted or otherwise coupled to the tool such that the camera's (e.g., lens) image capture aspect is pointed at the material surface with a vector fixed and known from the cutting tool (e.g., drill bit). By focusing the camera away from the cutting tool, the system can obtain an image relatively free of debris caused by the cutting, which may be used to blur the markers at the detection location.

[0086] The system can compare a new image with a digital map of the material surface to determine the precise location of the tool. For example, the portion of the digital map corresponding to the upper right corner may include a set of identification markers. After acquiring a new image, the system can identify those identical markers and determine which markers correspond to the upper right corner of the map image. The system can then determine the precise location of the cutting or drawing tool based on the camera vector offset.

[0087] In some embodiments, the system can display the precise location of a cutting or drawing tool in real time on a display device (e.g., a display device for the tool or a remote display device communicatively coupled to the system or tool). The system can indicate the location on the display using an "X," circle, dot, icon, or any other indicator to signal the tool's current position. In some embodiments, the tool can override the indication of its current position on a design scheme or cutting path (e.g., a predetermined path). In some embodiments, the tool can override the indication of its current position on a map image. In some embodiments, the tool can override the indication of its current position on a map image that includes an overlay of the design scheme.

[0088] In some embodiments, the system may include a positioning system that adjusts or moves the tool based on detected tool location and design. In some embodiments, the system may use various location detection techniques to detect the tool's location and various positioning techniques to move or adjust the tool's location. For example, the system may include a hybrid positioning system comprising two or more positioning systems to position the tool. After determining the tool's location and desired location, a first positioning system may be configured to move, adjust, or position the tool over a relatively large range (e.g., moving the tool anywhere on a work area or material surface) but with relatively low accuracy. A second positioning system may be configured to move, adjust, or position the tool over a relatively short range (e.g., within a 5-inch radius of the tool's current location) but with high accuracy. In some embodiments, the first (e.g., coarse or rough) positioning system may include a person positioning the tool on a material surface, and the second (e.g., fine or precise) positioning system may include positioning the tool using, for example, a servo motor, stepper motor, actuation mechanism, or eccentric wheel. In such embodiments, the tool adjustment range is short. In some embodiments, the tool adjustment range may be a circular area, an elliptical area, a polygonal shape, or a similar shape. The first positioning system may include a non-human positioning system, such as, for example, a robotic system, a remote control system, or a device that enables a Global Positioning System (“GPS”).

[0089] For example, a first positioning system may include a remote, low-accuracy positioning mechanism configured to move, adjust, or correct the position of an tool based on a design. A second positioning system may include a short-range, high-accuracy positioning mechanism designed to move, adjust, or correct the position of the tool more precisely than the first positioning mechanism within a maximum range. In illustrative and non-limiting examples, a first positioning system may include, for example, a maximum range encompassing the entire work area (e.g., including the surface area of ​​the material on which the task is to be performed) and an accuracy of + / - 0.25”. A second positioning system may include, for example, a maximum range of 0.5” with an accuracy of + / - 0.01”. The maximum range and accuracy of the first and second positioning systems may include other range and accuracy values ​​that facilitate hybrid positioning systems and methods. In various embodiments, range and accuracy may refer to one-dimensional accuracy (e.g., along the X-axis), two-dimensional accuracy (e.g., along the XY-axis), or three-dimensional accuracy (e.g., along the XYZ-axis).

[0090] The first positioning system may be less accurate and may include positioning systems where the maximum range is significantly greater than the maximum range of the second positioning system. For example, the first positioning system may move the tool from anywhere on the material surface to within + / - 0.25 inches of the desired location, while the second positioning system may be configured to move the tool up to 5 inches from its current location, but with an accuracy of 0.01 inches. In some embodiments, a hybrid positioning system may include multiple positioning systems, each configured to accurately determine the location and then position the tool within a certain distance range, such that when the positioning systems are used together, the system can precisely determine the location and position or adjust the tool accordingly. In some embodiments, the maximum range of each subsequent positioning system may be equal to or greater than the accuracy of the previous positioning system. In an illustrative example, the first positioning system may be able to position the tool on the surface of the material, for example, having a maximum range corresponding to the size of the material surface and with an accuracy of + / - 1 inch. The second positioning system may be able to position the tool on the surface of the material with an accuracy of + / - 0.1 inches within a maximum range of 2 inches. The third positioning system may be able to position the tool anywhere with an accuracy of + / - 0.01 inches within a maximum range of 0.2 inches. Therefore, in this example, by using all three positioning systems together, the hybrid positioning system can precisely position the tool over a maximum area of ​​the entire surface, including the material or work area, with an accuracy of + / -0.01 inches.

[0091] In some embodiments, the system may include automatic adjustment, guidance, or error correction based on a design scheme to facilitate task execution. The system may use various types of adjustment, guidance, or correction mechanisms, including, for example, eccentric wheels, servo mechanisms, stepper motors, control loops, feedback loops, actuators, nut and bolt-type mechanisms. For example, the system may include an eccentric wheel or servo motor coupled to a frame, and the cutting tool is configured to adjust its position relative to the frame. After determining the current position of the cutting tool, the system may compare the current position with a desired position. The system may then guide the tool according to the design scheme. In some embodiments, when the system determines that there is a difference between the current position and the desired position, or that the current position or trajectory deviates from the design scheme, the system may adjust the cutting tool according to the design scheme. For example, the system may identify the tool's cutting path or vector and the design scheme and adjust the cutting tool so that the next cut conforms to the design scheme.

[0092] This system can utilize various automatic correction mechanisms. In some embodiments, the system may include eccentric wheels configured to adjust the position of the cutting tool. For example, using two eccentric wheels, the system can adjust the position of the cutting tool in two dimensions. The eccentric wheel may include any small circular component that rotates asymmetrically about an axis. For example, the eccentric wheel may include a circle that rotates about a non-central axis. The eccentric wheel may be coupled to the cutting tool and the frame and configured to adjust the position of the cutting tool relative to the frame, which can adjust the position of the cutting tool relative to the material surface. In some embodiments, the system may use a screw with a nut to convert rotational motion into linear displacement to correct or adjust the tool positioning.

[0093] In some embodiments, the system may include orientation control based on the type of cutting tool. For example, if the cutting tool is a saber saw that cannot be adjusted vertically, the system may adjust the orientation or angle of the saber saw according to the design. The system may include actuators configured to adjust the tilt or angle of the saw.

[0094] The system can control the z-axis of a cutting or drawing tool. The system can determine the position of the tool's tip relative to the work surface. By controlling the z-axis of the cutting or drawing tool (e.g., an axis substantially orthogonal to the material surface; a perpendicular axis; an axis parallel to the workpiece along which it descends or rises to or from the surface of the workpiece or cutting tool), the system can start and stop cutting or drawing according to a design plan. For example, if the cutting tool exceeds a correctable distance in the design plan (e.g., outside the automatic compensation radius), the system can stop cutting by adjusting the z-axis position of the cutting tool (e.g., raising a cutting drill or milling drill bit away from the wood). When the user brings the cutting tool back within the automatic adjustment radius, the system can automatically adjust the z-axis position of the cutting tool so that cutting resumes (e.g., lowering the drill bit into the wood). The compensation radius or range can correspond to the positioning system of a localization system. For example, if the localization system includes a hybrid positioning system comprising large-range and short-range positioning systems, the compensation radius can correspond to the short-range positioning system. In some embodiments, the z-axis position of the control tool can facilitate 2.5D design. For example, the design can indicate z-axis information corresponding to the material surface. Thus, the system can use the determined z-axis position of the working member or cutting tool or its tip to control the motor to move the working member to a second location or position (e.g., x, y, or z-axis position).

[0095] The system can control motors to move a working component to a given (x, y, z) position based on information indicated in the design. In some embodiments, the system can control one or more motors to move the working component to the given (x, y, z) position based on a desired path determined at least partially by the design. In some embodiments, the system can control one or more motors to move an adapter used to hold the working component to the given (x, y, z) position based on a desired path determined at least partially by the design. In some embodiments, the desired path of the working component and the desired path of the adapter holding the working component can be correlated by an offset between the adapter and the working component (e.g., displacement from the tip of the adapter to the tip of the working component). For example, if the system is similar to a conventional milling machine and the adapter and working component are axially aligned, the desired paths of the adapter and the working component will be offset in the z-direction (perpendicular to the working surface).

[0096] In some embodiments, the system may indicate to the user that the cutting tool is on a desired path (e.g., a predetermined path) or within the compensation range, allowing the system to correct the position of the cutting tool. In some embodiments, the system may indicate to the user that the cut is not on the desired path or outside the compensation range. The system may also indicate to the user the direction to correct the position of the cutting tool or move the cutting tool to be on the desired path or within the compensation range. The system may visually provide one or more indications via a display device using LEDs or other light sources, audio signals, buzzers, chirps, or vibrations. In some embodiments, an indication that the tool has deviated from the desired path beyond an acceptable range may include automatically shutting down the cutter or adjusting the z-axis of the cutting or drawing tool so that it stops performing its task on the material. In some embodiments, the system may indicate the desired path on the surface material itself by, for example, illuminating a beam of light to the user indicating where the desired path is and to what extent it should proceed. For example, when determining an error, the system may illuminate the beam of light to indicate to the user how much the tool should be adjusted to keep its position within the automatic compensation range or on the desired path.

[0097] In some embodiments, multiple cutting or drawing tools can be used with the system, including, for example, a saber saw, a jigsaw, a milling machine, or a drill bit. The system can be configured to allow a user to use various aspects of this disclosure with a variety of cutting or drawing tools without requiring any adjustments or minor / temporary modifications to the tools. For example, the system may include a frame, a camera, a display device, and a computing device. The frame can be configured such that the cutting tools can be placed within it. The camera can be coupled to the frame or attached to the cutting tool. After the camera is placed, the system can automatically or manually calibrate to obtain a vector offset between the camera and the cutting or drawing tool (e.g., a cutting drill bit or a milling machine drill bit).

[0098] In some embodiments, the system may include a standalone device configured to perform mapping and positioning functions and indicate the current position of the device to the user. In some embodiments, the standalone device may be attached to a cutting tool or a drawing tool. In some embodiments, the standalone device may not provide automatic correction functionality. In some embodiments, the standalone device may include a display. In some embodiments, the standalone device may include one or more sensors (e.g., one or more cameras for mapping and positioning). In some embodiments, the standalone device may determine a desired path and detect when the tool deviates from the desired path. The standalone device may indicate errors via, for example, a display, light shining onto a material surface, audio signals, or voice narration.

[0099] refer to Figure 1 This illustration shows an example of an embodiment of a device for guiding a tool to perform a task. In some embodiments, the device includes a frame and a tool mounted within the frame (e.g., Figure 1 (e.g., a milling machine in the example). The frame can be manually positioned by the user. The device can adjust the position of the tool within the frame to guide or adjust the tool according to the design or to correct errors in rough positioning by the user. The device may also include a display and be configured to map and display the target material on the display. In some embodiments, markings (e.g., strips) on the target material can facilitate the generation of a map of the target material by providing distinguishing features. The device can obtain designs or schemes by downloading them from an online store. The device can display a map of the target material with designs indicating the desired cutting pattern.

[0100] refer to Figure 2 This illustration shows an example of an apparatus for an automated guided tool that follows a target path region and performs tasks according to a planned design. In some embodiments, to follow a complex path, the user of the device may only need to move the frame within a rough approximation of the path. In this example, the dashed line shows the path the tool would take if the tool position were not adjusted; the solid line is its actual path, for example, the outline of the southeastern United States. In this example, the user can grasp the frame and guide the tool roughly along the dashed line, and the tool can self-adjust to cut along the solid line. In some embodiments, the device automatically adjusts the drill bit or other cutting tool based on the position of the cutting tool (e.g., one or more of the x-axis, y-axis, or z-axis positions) and the desired position of the cutting tool. The x-axis and y-axis may intersect to form an xy plane that is substantially parallel to the surface of the material (e.g., within 45 degrees), while the z-axis is substantially perpendicular (e.g., perpendicular at 45 degrees) or orthogonal to the horizontal plane formed by the xy axes. In some embodiments, the user of the device can move the frame along the dashed line. Figure 2 The dashed line 1210 (or Figure 23 Path 406) mobile device, while the device is designed according to the desired design scheme (such as Figure 2 Design scheme 1205) automatically adjusts the cutting tool (e.g., x, y, or z position). For example, the device can use the design to identify or detect the current position of the cutting tool relative to the target surface. The device can then compare the current position with the desired position in the design or map and adjust the cutting tool. For example, if it is determined that the tip of the working component or cutting tool is 1 inch above the material surface, the system can determine to lower the tip of the cutting component to contact the material surface. In another example, if the design instructs to drill a hole 0.5 inches deep in the material, the system can determine the z-axis position of the tip and insert the tip into the material 0.5 inches based on the determined z-axis position. For example, the system can instruct a motor to extend the working component or cutting tool 0.5 inches beyond the material surface.

[0101] refer to Figure 3This illustration shows an illustrative block diagram of an embodiment of a system for an automated guidance tool. In some embodiments, system 680 includes a smart device 681. Smart device 681 may include at least one central processing unit (“CPU”) or processor 683, and may include software code 685 performing one or more processes, at least one memory 687, or at least one display 689. Smart device 681 may include a self-contained unit, or smart device 681 may include non-self-contained or separate components. For example, display 689 may be attached to smart device 681 or integrated into the housing of smart device 681. In some embodiments, smart device 681 may be integrated as part of system 680, making the system a self-contained portable unit. In some embodiments, system 680 may include one or more communication interfaces (not shown) to allow communication with other computer systems via a network (e.g., sending and receiving manufacturing data (e.g., information about cuts made on a work surface), sending and receiving digital designs or design schemes). In some embodiments, system 680 may include one or more other interfaces (not shown, e.g., input interfaces).

[0102] In some embodiments, the drilling rig may include motors (e.g., 210, 220), actuator assemblies (e.g., table 690, pivot 694), and adapters (e.g., clamps, chucks) for holding the working components. In some embodiments, a computing device without a display or camera may be detachably coupled to components on the drilling rig. The computing device may include one or more memories operatively coupled to one or more processors, wherein one of the memories may have instructions stored thereon that, when executed by one of the processors, cause the system (including the computing device and the drilling rig) to perform one or more embodiments of the disclosed embodiments. In some embodiments, a display may be operatively coupled to one of the processors in the computing device. In some embodiments, the computing device may include a display. In some embodiments, one or more sensors (e.g., cameras, ultrasonic sensors) may be operatively coupled to one of the processors in the computing device. In some embodiments, the computing device may include one or more sensors (e.g., cameras, ultrasonic sensors).

[0103] In various embodiments, system 680 may include one or more sensors to determine the location of a tool (e.g., IR, laser, ultrasonic ranging, etc.). For example, and in some embodiments, system 680 may include a camera 682, which may be used in conjunction with a smart device 681 to construct a map 684 of the material to be worked on. Camera 682 may be coupled or attached to any tool 699 to provide the location of that tool 699. In some embodiments, camera 682 is coupled to a display 689 and a CPU 683. For example, camera 682 may be part of a computer or a smart device 681 that may be attached or coupled to any tool 699. Software application or code 685 may be installed on a mobile smartphone and may utilize the smartphone's camera, CPU, memory, and display. In some embodiments, one or more aspects of the software or processing may be executed by a field-programmable array device (“FPGA”) or a digital signal processor (“DSP”).

[0104] In some embodiments, camera 682 can capture images at a high frame rate. For example, the camera can scan the surface of a material to obtain scan data or scan image data. In some embodiments, the camera can scan the surface of a material, and a processor can process the scan to generate scan data indicating a map of the material surface. This can facilitate the pointing or mapping functions disclosed herein. Camera 682 can also capture images at a relatively low frame rate, and camera 682 can be coupled to one or more optical sensors (e.g., sensors in an optical computer mouse). Optical sensors can provide low-latency dead reckoning information. These optical sensors can be used in conjunction with camera 682. For example, camera 682 can provide accurate global position information several times per second with significant hysteresis, and optical sensors can be used to provide dead reckoning information with low hysteresis filling the time since the last image was captured. In some embodiments, an IMU can be used for dead reckoning. System 680 can use multiple cameras to increase the accuracy or extent of coverage during scanning, or to provide depth information.

[0105] In some embodiments, system 680 is configured to construct, generate, or otherwise receive map 684. In some embodiments, computer vision (“CV”) or sensor technology may be used to construct map 684. For example, CV technology may be used to construct photo mosaics. Photo mosaic processing may include taking multiple photographs of different parts of the same object and stitching at least two photographs together to create at least one overall image covering some or all of the object.

[0106] In some embodiments, system 680 or the processor may be configured to evaluate scan data using techniques including Simultaneous Pointing and Mapping (“SLAM”). SLAM may include using sensors communicatively coupled to processor 683 and associated software 685 to construct a map 684 of the material (or “target material”) on which work is being performed, while simultaneously (e.g., determining the location of tool 699 relative to map 684). For example, after at least a portion of the map has been constructed, camera 682 may capture an image of the material being processed. The image may be fed to and processed by smart device 681 to determine the location of tool 699 or drill rig. System 680 may analyze the captured image based on map 684 to determine the location of camera 681 relative to the material. After determining the location of camera 682, in some embodiments, system 680 may identify the location of drill rig as a known or determinable offset from the position of camera 682, which may be rigidly attached to drill rig.

[0107] In some embodiments, to construct a map, one or more processors (e.g., CPU / processor 683) of the system (e.g., system 680) use one or more cameras (e.g., camera 682) to capture one or more images of a work surface. In some embodiments, the one or more processors may analyze each captured image to identify markings or labels on the work surface. In some embodiments, the markings may be associated with features of the workpiece (e.g., wood grain pattern). In some embodiments, the labels may be placed on the work surface by a user. For example, a user may apply a strip with location markings (e.g., a label with a domino pattern, a label with a barcode, a label with a 2D code, a label with a binary image, a reference mark) having a pattern printed along the length of the strip in known dimensions (e.g., length, width, pattern spacing, pitch). In some embodiments, each pattern may have an encoded ID, which may be decoded by one or more processors using an image of the pattern and an image processing algorithm. The encoded ID of each label may not be unique. For example, a strip with location markings may contain 100 repeated unique IDs. In this example, if the user uses a long portion of the strip or a non-continuous portion of the strip, the work surface may have two labels with the same encoded ID. In some cases, the encoded ID of a tag may be incorrectly decoded by one or more processors (e.g., based on fragments of an overlay encoded pattern), which may result in two tags having the same ID.

[0108] In some embodiments, to generate a map using a set of captured images, one or more processors analyze each image to identify markers / tags. For each image in the set of captured images, data corresponding to the image ID and marker / tag information are determined, including the marker / tag ID and location information for each marker / tag in the image. In some embodiments, the marker ID may be based on the coded ID of a coded pattern. In some embodiments, the marker ID may be based on the characteristics of the marker (e.g., color if the marker is a wood grain pattern). In some embodiments, data from all images in the set of captured images (including image IDs and image-level marker / tag information) are analyzed together using feature mapping (CV) or SLAM techniques to determine marker / tag locations, subject to constraints derived from the images in which the marker / tag appears (e.g., related to the location of each marker / tag in each image). In some embodiments, the obtained marker / tag locations and corresponding marker / tag IDs are used to generate a global list of markers / tags (e.g., ID and location for each marker / tag), where “global” indicates that this list of markers / tags is not specific to any one captured image. This list may contain information about markers / tags that appear only in some captured images, and no single captured image may contain all the markers / tags in the list. As used herein, “list” can be data in any format (e.g., structured, unstructured, or a combination of structured and unstructured) associated with list elements.

[0109] In some embodiments, the position of each marker / marker can be expressed using six or fewer degrees of freedom. In some embodiments, the position of each marker / marker is given as an X-coordinate, a Y-coordinate, and an orientation angle relative to the X-axis (assuming the markers / markers are all located in a 2D plane). In some embodiments, in addition to using the dimensions or spacing of the marks, if known in advance (e.g., if they are known patterns printed on a tape), one or more processors can use one or more measurements (e.g., made by the user) of features included in the working surface to adjust the dimensional scaling of the marker / marker position along one or more dimensions.

[0110] In some embodiments, the system may use a global list of markers / tags as a map. In subsequent processing that uses the map to determine camera locations, the camera may capture new images of the work surface. The captured images may be analyzed by one or more processors (e.g., CPU / processor 683) to identify markers / tags included in the new images. In some embodiments, a new list of markers / tags is generated based on the markers / tags identified in the new images (e.g., for each marker / tag, using a marker / tag ID and information about where the marker / tag appears in the image). In some embodiments, if location markers are used, a list of sub-features constituting the markers identified in the new images is generated (e.g., for each sub-feature, using a sub-feature ID and the location of the sub-feature in the new image). For example, if the markers are as follows... Figure 7B The marker 708 shown, based on the 10 white patches in the marker, would have a sub-feature count of 10. Assuming the new image includes... Figure 7B Given the set of markers shown, the sub-feature list will include all white patches across all 55 markers.

[0111] In some embodiments, if location tags are used, one or more processors may identify candidate lists of tags from a global list as matches for tags in a new list based on matching one or more tag IDs between two lists. In some embodiments, if a tag ID of a tag in the new list matches a tag ID of a tag in the global list, one or more processors may compare tag IDs of nearby tags. In some embodiments, one or more processors (e.g., CPU / processor 683) used to identify candidate lists of tags from the global list as matches for tags in the new list may execute instructions stored on one or more memories (e.g., memory 687) that implement mathematical modeling (e.g., RANSAC), pattern search, or graph traversal algorithms. In some embodiments, after a list of tags in the global list matches a list of tags in the new list, a global list of sub-features is generated for the matching list of tags in the global list (e.g., for each sub-feature, using a sub-feature ID and the position of the sub-feature). In some embodiments, the sub-feature ID in the global list of sub-features is based on the tag ID in the global list of tags. In some embodiments, the sub-feature position in the global list of sub-features is based on the tag ID and the tag position in the global list of tags. In some embodiments, one or more processors may use a list of sub-features and a global list of sub-features, along with one or more mapping algorithms (e.g., methods for solving the perspective n-point problem) to determine the location of the camera when a new image is captured.

[0112] In some embodiments, a photo mosaic or a single image showing a work surface (e.g., taken with a DSLR camera, or with camera 682 of system 680) can be used as a map. In some embodiments, a new image of the work surface captured by the camera (e.g., camera 682 of system 680) can be compared with the photo mosaic to determine the location of the camera. In some embodiments, a combination of the photo mosaic and a global list of markers / labels can be used as a map for determining the location of the camera (e.g., camera 682 of system 680) based on an image of the work surface taken with the camera (including one or more markers / labels). In some embodiments, a new image of the work surface captured by the camera (e.g., camera 682 of system 680) can be compared with the single image to determine the location of the camera. In some embodiments, a single image taken with the camera and a global list of markers / labels can be used to determine the location of the camera (e.g., camera 682 of system 680). In such embodiments, the global list of markers / labels serves as a map.

[0113] Various embodiments may utilize a variety of other positioning and determination techniques, including, for example, integrated wireless position sensing technologies such as RF, near-field communication, Bluetooth, laser tracking and sensing, or other suitable methods for determining the position of tool 699 on top of the workpiece. For example, ultrasonic, IR ranging, or laser methods may be used to detect the location of the tool relative to the working area or surface of the material. According to embodiments, the detected tool location may be provided to any other component of system 680 to guide or adjust the tool's position.

[0114] In some embodiments, system 680 can be configured to calculate the position of tool 699 relative to the drill using the current orientation of the motor shaft. For example, system 680 can identify the orientation of the motor shaft by homing the motor shaft and then tracking one or more actions taken since the homing process. In some embodiments, system 680 can use an encoder, which may be used instead of homing, as the encoder will be able to directly inform the orientation of the shaft. Through offsetting and calculation, system 680 can identify the location of tool 699 or drill relative to the material being processed. The captured image that can be analyzed against map 684 may include, for example, material properties such as wood grain and deformation, or may include markings placed on the material. Various aspects of the mapping and positioning techniques will be described in more detail below.

[0115] In some embodiments, system 680 may receive design scheme 686 or a template. For example, smart device 681 may be configured to receive design scheme 686 or a template from a user of system 680. Smart device 681 may include or have access to various input / output devices configured to receive design scheme 686. In some embodiments, system 680 may receive design scheme 686 via a network. In some embodiments, the user or system 680 may modify or adjust design scheme 686 based on map 684. For example, the user may adjust the dimensions of design scheme 686 relative to map 684 of materials to generate a desired work path on the material being processed. In some embodiments, system 680 may automatically adjust or optimize the dimensions of the design based on the dimensions of the material.

[0116] Networks can include computer networks such as the Internet, local area networks (LANs), metropolitan area networks (MANs) or wide area networks (WANs), intranets, and other communication networks such as mobile phone networks. Networks can be used to access web pages, online stores, computers or data in retail stores that can be displayed on or used by at least one user device, systems 680 or 100, such as, for example, laptops, desktop computers, tablets, personal digital assistants, smartphones, or portable computers.

[0117] System 680 can be configured to create, capture, or load design scheme 686 in various ways. In some embodiments, the design can be downloaded or otherwise obtained. For example, a user can generate the design on a computing device and transmit or otherwise communicate the design to system 680. In another example, system 680 can receive the design from a third-party entity. For example, a user can purchase the design online via a network and upload it to a smart device or computer 681. In some embodiments, system 680 can facilitate capturing a map of a surface and a map of the design scheme 686 on that surface. This can help set system 680 to follow specific lines or display an image of a material surface beneath a large tool that obstructs the user's view, or display a surface with the design scheme in its original state before it is covered with debris or the surface on which the design scheme was drawn is cut away. In some embodiments, the design scheme 686 can be designed, modified, or manipulated on device 681 from its original form via a menu-driven interface that allows the user to input distances, angles, and shapes or to draw freely on a touch pad or display.

[0118] In some embodiments, as a user moves the system or drill 680 along the target material, the intelligent device 681 processes captured images from the camera 682, determines the location of the drill 680, or provides the desired path to the user on the display 689. Once the user places the drill 680 near the desired path, the drill or system 680 can automatically adjust the position of the tool 699 according to the loaded design scheme 686 to achieve the desired working path. As described herein, the terms "drill rig" and "system" are used interchangeably. In some implementations, a drill rig includes physical equipment and its accessories, and a system includes physical equipment, its accessories, and related technologies and software code embedded in or included in some physical elements.

[0119] In some embodiments, system 680 constructs a map 684 based on images captured by a camera along an arbitrary path on the target material until the entire region of interest is covered. For example, a user can sweep across the material surface along an arbitrary path from camera 300 until the entire region of interest is covered. In some embodiments, system 680 can be configured such that camera 682 can be removed from drill 680 to sweep over or pass through the area of ​​the material. System 680 can stitch together the images acquired by camera 682. For example, system 680 can use image mosaic software code 685 to form a stitched map 684 of the region of interest on the material surface. System 680 can store map 684 in memory 687. After receiving an image of the mapped material taken by camera 682, system 680 can compare the image with map 684 stored in memory 687 and can also determine position and orientation. For example, system 680 can determine the position of tools, drill bits, systems, cutting components, workbenches, or drill rigs based on the comparison.

[0120] In some embodiments, system 680 may allow a user to create and load design scheme 686 after assembling map 684. For example, after map 684 has been assembled on smart device 681 (such as a computer), the user can create design scheme 686 on a computer by drawing it directly onto the generated map 684. For example, the user can mark locations on a block of wood where a hole is desired to be drilled. Techniques and features of software code 685, including computer-aided design and manufacturing, can be employed to create designs with accurate measurements. Then, when the user returns to the material, the position of camera 682 on map 684 can be displayed to the user on a screen or display 689, with design scheme 686 overlaid on map 684. For example, system 680 may display a map image on a display device with indications of positions relative to the material surface (e.g., positions of sensors, devices, cutting tools, or drawing tools). In some embodiments, system 680 may identify the location of a tool relative to the map. For example, camera 682 may be attached to a drill and used to determine the exact position of the drill relative to a target drill location specified in design scheme 686, thereby facilitating more precise drill alignment by the user.

[0121] In some embodiments, system 680 is configured to construct a map and track camera position using visual features of the target material. In some embodiments, software 685 includes instructions to construct a map and track camera position using visible features of the material, such as particles, imperfections, or markings. The target material can be altered to facilitate mapping and tracking. For example, solid-color plastic may be too indistinguishable for system 680 to effectively map or track. Therefore, a user can, for example, alter the material surface in a certain way to add features that can be tracked. In another example, system 680 can instruct markings to arbitrarily add features that can be tracked. For example, features that can be added may include inks of a material that are normally invisible but can be seen in the non-visible or visible spectrum when UV or other light is applied, allowing the camera to track the pattern of the invisible ink while no visible markings are displayed once the work is complete. In some embodiments, a user can apply a strip with markings that can be removed later. Features can also be projected onto the material, such as using a projector. In some embodiments, invisible light (e.g., infrared, UV) can be used to pattern the projected features. In some embodiments, a sensor sensitive to invisible light (e.g., an infrared camera) can be used to scan the work surface to capture the invisible light projected features. Alternatively, if the user will paint the material later or does not care about its appearance for other reasons, the user can simply mark the material with a pencil or marker.

[0122] In some embodiments, the labeling tape or strip may include a unique barcode sequence along its entire length. In some embodiments, the labeling tape may be thin, allowing a device to pass over it without getting stuck or interfered with. In some embodiments, the tape may be designed and configured such that it remains downward as the device moves across it, but can also be easily removed when the project is completed. The labeling tape material may include, for example, vinyl or any other suitable material. In some embodiments, the labeling tape (e.g., a tape with location markings) may include a pattern that can be detected using a sensor sensitive to invisible light (e.g., an infrared camera). In some embodiments, the labeling tape (e.g., a tape with location markings) may include a pattern that fluoresces in response to light of a certain wavelength.

[0123] In cases where the camera cannot track the material, or cannot track the material accurately enough, or the material is unsuitable for tracking (e.g., due to an uneven surface), or for any other reason preventing the camera from directly tracking the surface, the camera can track other markings outside the material. For example, a user can place a wall with specific features or markings above, below, or around the side of the material being processed. Features or markings on the surrounding surface can enable the camera to determine its position on or relative to the material. In various embodiments, different types of positioning techniques or devices can be used to position the tool 699 or the worktable 690, possibly in conjunction with a camera 682 primarily used for recording the visual appearance of the material without needing to perform tracking functions. Positioning techniques may include, for example, ultrasonic, IR ranging, or laser.

[0124] System 680 can precisely position tool 699 by adjusting the location of the worktable 690 or the movable platform to which tool 699 is attached. Worktable 690 can be connected to an eccentric wheel coupled to a motor shaft. As the motor shaft moves along a circular path, the eccentric wheel causes worktable 690 to move along complex arcs and paths. Pivot 694 can be connected to the worktable and also to an eccentric wheel coupled to a second or pivot motor shaft. Pivot 694 can be configured to pull or push worktable 690 to achieve controlled movement of the worktable within a 360-degree range. By controlling the rotation of the eccentric wheel, system 680 can position the worktable in virtually any XY position within this range.

[0125] In some embodiments, system 680 uses a reference lookup table to facilitate tool guidance. For example, the reference lookup table may include motor coordinates associated with a desired worktable position. In some embodiments, system 680 may calculate motors that can be used to adjust the movement of the worktable 690 and the cutting drill bit of the tool 699 connected to the worktable 690 to the desired position. In some embodiments, system 680 may move the tool 699 360 degrees in a two-dimensional plane by positioning the worktable 690 and pivot 694. For example, the tool's cutting tool can move anywhere within a 360-degree window of the target range 408.

[0126] In some embodiments, electric motors can move, position, or adjust the worktable 690 and pivot 694. A worktable motor controller 691 can control the worktable motor 210. A pivot motor controller 695 can control the pivot motor 220. The worktable motor controller 691 and pivot motor controller 695 can receive information, including desired location or coordinates, from a smart device 681. Based on the received information, the worktable motor controller 691 and pivot motor controller 695 can activate and control their respective motors 210 and 220 to place the worktable 690 and pivot 694 in the correct or desired position, thereby positioning the tool at the desired location.

[0127] In some embodiments, the smart device 681 can communicate with, receive information from, and control the tool 699. For example, the smart device 681 can send instructions to turn the power on or off or to increase or decrease the speed. In some embodiments, the instructions can signal when to engage the target material by adjusting the depth of the tool 699, for example, when the user is sufficiently close to or near a desired path on the material.

[0128] Figure 4 An illustrative flowchart is provided for an embodiment of a method 600 for performing a task on a target material. For example, method 600 may use a milling machine-based embodiment to facilitate cutting a working surface. In some embodiments, at action 602, a user can find or create a design they want to cut from the material. In some embodiments, a task may include multiple tasks (e.g., a first task and a second task, which may be subsets of the whole task). For example, the task of cutting the design from the material may include a first task cutting a first portion of the design and a second task cutting a second portion of the design. In some embodiments, the first and second tasks may be substantially similar (e.g., the same type of cutting or drawing tools), while in other embodiments, the first and second tasks may be different (e.g., different drill bits or drawing tools, different types of cutting tools, different user devices, different material regions, etc.).

[0129] Before or after identifying the design scheme, the user can map the surface of materials or material sheets. If the material has sufficient markings, the user can use the material itself. However, in action 604, if the material has a flat surface or limited markings, the user can place markings on the material. Markings may include, for example, printer marking strips or other suitable types of identification that are easily identifiable.

[0130] In some embodiments, at action 606, a sensor may scan material to obtain scan data. For example, a camera scans material and various markers to create a map. A CPU may process images captured by the sensor or camera and generate a map or scan data. The size and shape of the map may be appropriately manipulated for a preferred configuration. In some embodiments, at action 608, a design is registered or otherwise correlated with the map to create a cutting scheme.

[0131] In some embodiments, at action 610, a cutting tool is prepared to perform a task. For example, a user may load, adjust, or secure a drill bit, install it onto a drilling rig, and turn on the milling machine. In some embodiments, the system may turn on the milling machine via a software-initiated process in response to one or more parameters, including, for example, motion sensing by the user moving system 680 in a particular direction.

[0132] In some embodiments, at action 612, the system can receive various settings. For example, the user can set the drill bit width of the cutting tool, the range of the desired range correction for the tool (e.g., the area), the size of the crosshairs, or the speed of the cutting tool. Afterward, instructions can be provided to the software to begin the task.

[0133] In some embodiments, at action 614, the drill rig is positioned near the desired path, allowing the system to automatically adjust the tool's position to the initial adjustment range along the desired path. The user can then follow the instructions provided herein, for example, regarding... Figure 3 The constant-speed strategy described above. In some embodiments, once the tool has fully advanced around the scheme (action 616), the user can remove the equipment and work product from the materials.

[0134] Figure 5 An illustrative flowchart of an embodiment of method 650 for a constant-rate strategy is shown. Figure 3 The process assumes that the user has attached the milling machine to the drilling rig and mapped its material and loaded its design. In some embodiments, at action 651, the user begins the process of cutting the material. This process may include moving the tool to a point within a plane or path on the material (action 653). For example, the user can move the tool or can remotely control the tool.

[0135] In some embodiments, the process includes determining whether a point exists within the adjustment range of the drilling rig based on the tool's location (Action 655). If no point is found within the range, the process may include sending a notification (e.g., via a display, audio, vibration, light, or LED) and waiting until the user moves the device within the adjustment range (Action 657).

[0136] In some embodiments, if a point exists within the adjustment range, the process includes setting the point on the plane closest to the tool as the target point at action 659. In some embodiments, the process may include moving the tool to the target point and cutting the material (action 661).

[0137] In some embodiments, the process includes creating a second target by determining whether the new target is within the adjustment range (action 663). If a second target exists, the process may include setting the second target point as the new target (action 665). The device may continue to move clockwise, cutting from the old target point to the new target point. In some embodiments, the process may include identifying the next target point within the adjustment range as the tool or milling machine cuts from the old target point to the new target point (action 663). For example, the determination of the optimal or desired second target may be continuous and based on images detected from the camera and processed by the system, or various images.

[0138] In some embodiments, if no target point is found within the range, the process includes clearing the target point (action 667) and, at action 655, beginning to determine whether a point exists on the plane within the adjustment range. In some embodiments, the process continues until the tool has traversed all or part of the scheme along a specific direction (such as clockwise).

[0139] In some embodiments, if the material size is larger than the design, the mapping stage can be bypassed. For example, the user can determine a starting point corresponding to an area on the design (i.e., the upper right corner), and the system 800 can begin drawing the image.

[0140] The embodiments discussed so far have focused on drilling machines suitable for tools attached to a worktable, where the worktable is moved or controlled by one or more motors. A linear design depicts a milling machine moved by a motor, where the milling machine is attached to a linear worktable. In this case, the milling machine is attached or mounted as a separate unit. However, the system can be designed as a single unit, where the worktable, the motor moving the worktable, the controller, and all of these are within the same housing and within the same power system as the tool's housing and power source. For example, the milling machine housing would be enlarged to accommodate the worktable and motor, and a display integrated into the housing could be included. With such embodiments, the form factor can be improved to resemble a single-piece tool.

[0141] The embodiments given herein are not exhaustive. Other embodiments using the concepts described herein are possible. Furthermore, the components in these embodiments can be implemented in a variety of different ways. For example, a linear worktable, or a hinge joint, or an electromagnetic slider, or another positioning mechanism can be used to adjust the tool or the worktable in response to its detected position and its expected position.

[0142] For example, the systems and methods described herein can be used with drills, nail guns, and other tools that operate in a fixed position. In such embodiments, the tools and software can be modified so that the solution includes one or more target points rather than the entire design. The user can move the device so that the target position is within an adjustment range. The software can then move the tool to the correct target position. The user can then use the tool to drill holes, drive in nails, or perform other operations.

[0143] In some embodiments, the tool can facilitate task performance without providing automatic adjustments. For example, the worktable, pivot, motor, and eccentric wheel can be removed. The tool can be attached to the lower worktable housing. The software can be modified so that the scheme includes one or more target points. The user can move the device so that the tool is directly above the target location. The user can use the position feedback provided on the display to perform precise positioning.

[0144] In some embodiments, this disclosure aids in guiding or positioning a jigsaw. The jigsaw blade can rotate and move in the direction of the blade, but not perpendicular to it, otherwise it would jam. This disclosure may include a rotary table that can be placed on top of a positioning table. The jigsaw can be attached to the rotary table. The software can be modified to make the jigsaw follow a pattern and rotate to the correct orientation, ensuring that the jigsaw does not move perpendicular to the blade. In some embodiments, a saber saw can be used instead of a jigsaw to achieve the same effect. The cutting tool can be manipulated by rotating the rotary table, and the cutting tool can be moved along the cutting direction by moving the positioning table. In this embodiment, the working motion of the jigsaw blade is a perpendicular cutting motion along the long axis of the jigsaw blade.

[0145] In some embodiments, the system may support rotation but not translation. For example, the system may automatically orient the blade in a rolling jigsaw (e.g., a jigsaw with blades that can rotate independently of the body). In this embodiment, the software can manipulate the blade to aim it along the correct path, and the user can be responsible for controlling its position.

[0146] In some embodiments, the system can position the rotary saw. For example, a camera can be coupled to the rotary saw, and the user can move the material. The upper and lower arms of the rotary saw can be mechanized so that they can move independently under computer control. The user can then move the material so that the plan is within the adjustment range of the rotary saw, and the software will adjust the rotary saw to follow the plan. In some embodiments, the upper and lower arms can move to the same position, or move independently to form a cut that is not perpendicular to the material.

[0147] In some embodiments, the position correction device can be mounted to a moving platform. For example, the device can be placed on a material and driven around. The device can also be used in alternative embodiments where two moving platforms stretch a cutting blade or wire between them. For example, each platform can be controlled independently, allowing the cutting wire to move arbitrarily in 3D, for example, to cut foam.

[0148] In some embodiments, the system may be coupled or otherwise attached to a vehicle or work equipment, such as a bulldozer in which a position correction mechanism is mounted. For example, some embodiments of a hybrid positioning system may include a vehicle comprising a first position correction system accurate to a first range and a second position correction system accurate to a second range more accurate than the first range. The vehicle may be driven over a sheet of material, such as a steel plate on the ground, and cutting tools, such as a plasma cutter, may be used to cut the material. In some embodiments, this disclosure may facilitate drawing or painting equipment, such as laying out lines on a football field or marking a construction site. For example, the vehicle may include an industrial vehicle, such as a forklift vehicle, configured to include a cutter or other tool, a camera, and the control circuitry system described herein to determine the location of the vehicle (or tool) on the material, identify where to cut or mark the material, and adjust the tool to cut or mark the material in the appropriate location.

[0149] Figure 6This is a block diagram of a computer system 600 implemented according to an illustrative description. The computer system 600 can be used to implement system 680. The computing system 600 includes a bus 605 or other communication components for transmitting information, and a processor 610 or processing circuitry coupled to the bus 605 for processing information. The computing system 600 may also include one or more processors 610 or processing circuitry coupled to the bus for processing information. The computing system 600 also includes a main memory 615, such as random access memory (RAM) or other dynamic storage device, coupled to the bus 605 for storing information and instructions to be executed by the processor 610. The main memory 615 may also be used to store location information, temporary variables, or other intermediate information during instruction execution by the processor 610. The computing system 600 may also include a read-only memory (ROM) 1220 or other static storage device coupled to the bus 605 for storing static information and instructions for the processor 610. A storage device 625, such as a solid-state device, disk, or optical disk, is coupled to the bus 605 for persistently storing information and instructions. In some embodiments, system 600 may include one or more communication interfaces (not shown, coupled to bus 605) to allow communication with other computer systems via a network (e.g., sending and receiving manufacturing data (e.g., information about cuts made on a work surface), sending and receiving digital designs or design schemes).

[0150] The computing system 600 can be coupled to a display 635, such as a liquid crystal display or an active matrix display, via a bus 605 for displaying information to a user. An input device 630 (such as a keyboard including alphanumeric keys and other keys) can be coupled to the bus 605 for transmitting information and command selections to the processor 610. In another implementation, the input device 630 has a touchscreen display 635. The input device 630 may include cursor controls, such as a mouse, trackball, or arrow keys, for transmitting directional information and command selections to the processor 610 and for controlling cursor movement on the display 635.

[0151] According to various implementations, the process described herein can be implemented by a computing system 600 in response to a processor 610 executing an arrangement of instructions contained in main memory 615. Such instructions may be read into main memory 615 from another computer-readable medium, such as storage device 625. Execution of the arrangement of instructions contained in main memory 615 causes the computing system 600 to perform the illustrative process described herein. One or more processors in a multiprocessor arrangement may also be employed to execute the instructions contained in main memory 615. In alternative implementations, the illustrative implementation may be implemented using hardwired circuitry in place of or in combination with software instructions. Therefore, the implementation is not limited to any particular combination of hardware circuitry and software.

[0152] Although it has already Figure 6 An example computing system is described herein, but the subject matter and functional operations described herein may be implemented in other types of digital electronic circuit systems, or in computer software, firmware, or hardware that includes the structures disclosed herein and their equivalents, or in a combination of one or more of them.

[0153] The implementation of the subject matter and operations described in this specification can be implemented in digital electronic circuit systems, or in computer software, firmware, or hardware including the structures disclosed in this specification and their equivalents, or in a combination of one or more of them. The subject matter described in this specification can be implemented as one or more computer programs, i.e., one or more circuits of computer program instructions, encoded on one or more computer storage media, executed by or controlling the operation of a data processing device. Alternatively or additionally, the program instructions can be encoded on artificially generated propagated signals, such as machine-generated electrical, optical, or electromagnetic signals, generated to encode information for transmission to a suitable receiver device for execution by the data processing device. The computer storage medium can be or is included in a computer-readable storage device, a computer-readable storage substrate, a random or serial access memory array or device, or a combination of one or more of them. Furthermore, although the computer storage medium is not a propagated signal, it can be a source or destination of computer program instructions encoded as artificially generated propagated signals. The computer storage medium can also be or be included in one or more separate components or media (e.g., multiple CDs, discs, or other storage devices). Therefore, the computer storage medium is both tangible and non-transient.

[0154] The operations described in this specification can be performed by a data processing apparatus on data stored on one or more computer-readable storage devices or received from other sources.

[0155] The terms "data processing apparatus" or "computing device" include various means, devices, and machines for processing data, including, for example, programmable processors, computers, systems-on-a-chip, or a combination of the foregoing. Apparatus may include special-purpose logic circuit systems, such as FPGAs (Field-Programmable Gate Arrays) or ASICs (Application-Specific Integrated Circuits). In addition to hardware, apparatus may also include code that creates an execution environment for the computer program in question, such as code constituting processor firmware, protocol stacks, database management systems, operating systems, cross-platform runtime environments, virtual machines, or combinations of one or more of these. Apparatus and execution environments can implement various different computing model infrastructures, such as web services, distributed computing, and grid computing infrastructures.

[0156] Computer programs (also known as programs, software, software applications, scripts, or code) can be written in any form of programming language, including compiled or interpreted languages, declarative or procedural languages, and can be deployed in any form, including as standalone programs or as circuits, components, subroutines, objects, or other units suitable for use in a computing environment. A computer program may, but does not necessarily, correspond to a file in a file system. A program may be stored as part of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), as a single file dedicated to the program in question, or as multiple coordinating files (e.g., a file storing one or more circuit, subroutine, or code portions). A computer program can be deployed to execute on a single computer system or on multiple computer systems located at one site or distributed across multiple sites and interconnected by a communication network.

[0157] For example, processors suitable for executing computer programs include general-purpose and special-purpose microprocessors, as well as any one or more processors in any type of digital computer. Typically, a processor receives instructions and data from read-only memory or random access memory, or both. The basic components of a computer are a processor for performing actions according to instructions and one or more memory devices for storing instructions and data. Typically, a computer will also include one or more mass storage devices for storing data, or operatively coupled to receive data from or transfer data to one or more mass storage devices, or both; mass storage devices include, for example, magnetic disks, magneto-optical disks, or optical disks. However, a computer does not necessarily need to have such devices. Furthermore, a computer can be embedded in another device, such as a mobile phone, a personal digital assistant (PDA), a mobile audio or video player, a game console, a global positioning system (GPS) receiver, or a portable storage device (e.g., a universal serial bus (USB) flash drive), to name just a few. Devices suitable for storing computer program instructions and data include all forms of non-volatile memory, media, and memory devices, including, for example, semiconductor memory devices such as EPROM, EEPROM, and flash memory devices; magnetic disks, such as internal hard disks or removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks. Processors and memory may be supplemented by or incorporated into dedicated logic circuitry systems.

[0158] To provide user interaction, the implementation of the subjects described in this specification can be implemented on a computer having a display device for displaying information to the user, as well as a keyboard and pointing device (e.g., a mouse or trackball). The display device could be a CRT (cathode ray tube) monitor, an LCD (liquid crystal display) monitor, an augmented reality head-up display, or a virtual reality head-up display, and the user can provide input to the computer via the keyboard and pointing device. Other types of devices can also be used to provide user interaction; for example, feedback provided to the user can be any form of sensory feedback, such as visual, auditory, or tactile feedback; and input from the user can be received in any form, including acoustic, speech, or tactile input.

[0159] refer to Figure 7A This illustration shows an example of an embodiment of the design scheme and marking material 702. Placing marking material 704 can help map the target material. For example, the target material may not contain sufficient distinguishing markings. Adding differentiating markings (e.g., stickers, ink, pencil) to the target material can help system 680 map the target material and track the positioning of the cutting tool during the cutting process. In this example, the design scheme is in the form of a country / region. The marking material can be placed on the surface of the target material to facilitate mapping the target material and tracking its position and adjusting its position according to the design.

[0160] refer to Figure 7B The illustration shows an example of an embodiment of location marker 706. Location marker 706 may be included as part of a design, or may refer to a type of marking material 702 used to form a design. Location marker 706 may be placed on a target material and used by system 680 to map the target material and track the position of the cutting tool relative to the material surface.

[0161] Location markers 706 can be designed, constructed, or configured to facilitate detection and reading (e.g., via a camera or sensor 682) by system 680. For example, location markers 706 can include dominoes representing a binarized image. The binarized image can include an image with two values, such as an image with two colors. In some embodiments, the two colors can be selected such that a first color contrasts with a second color. For example, the two colors can include white and black, red and white, orange and blue, green and purple, etc. Domino-based location markers 706 can be easily and quickly read by system 680. Location markers 706 can be quickly read from a binarized image contour tree using location markers 706 and a predetermined number of features (e.g., patches 710). Furthermore, each domino can include a number that helps in tracking multiple dominoes. Additionally, system 680 can easily determine the subpixel accuracy of each circle 710. In some embodiments, corner circles (e.g., 710) can be present in each of the multiple dominoes 706. The presence of corner circles 710 in each domino facilitates the reading of location markers 706 and allows system 680 to read location markers at an increased distance because the features have uniform size. Features with uniform size prevent subsets of features from disappearing from the binarized image before all features disappear. For example, if all features 710 have the same size, system 680 can either detect all features or not detect any features if location marker 708 is outside the detection range.

[0162] In some embodiments, location marker 706 may include reference marker 708. Reference marker may refer to a marker that can be detected by system 680 with minimal computational power. In some embodiments, system 680 may detect location marker 700 directly from input as a black-and-white image (possibly as a binarization of an image with more data, such as grayscale or panchromatic).

[0163] In some embodiments, system 680 may use a contour tree of a binarized image to detect location markers 706. A contour tree may refer to a patch tree. A patch may refer to a region of the same color. A contour may refer to or include the boundary of a patch or a region of the same color. Patches may have shapes such as circles, squares, triangles, polygons, ovals, ellipses, rectangles, pentagons, outlines, or other shapes that allow system 680 to detect location markers.

[0164] In some embodiments, patches can be organized in a tree such that each node in the tree corresponds to a patch. Furthermore, if a parent patch contains child patches, a node can be a child of another node. For example, in an image of the capital letter "B," there are four patches: a white background, the black of the letter itself, and two white patches inside the B. They are organized in a tree such that the letter is a child patch of the background, and the two inner patches are child patches of the letter.

[0165] In some embodiments, location markers may include, for example, Figure 7B The dominoes shown. Although Figure 7B The image shows a rectangular domino, but other markers with patterns or other shapes can be used. For example, the markers can be polygons, circles, ovals, squares, triangles, pentagons, etc., instead of rectangular marker 708. Patch 710 can be circular or other shapes. A group or number of markers can be referred to as scene 706 or multiple markers 706 or multiple candidate location markers 706. Marker 708 can be a candidate marker because system 680 can perform initial processing to identify the image and determine whether the image is a location marker based on a threshold test or the fulfillment of criteria (e.g., whether a patch exists in a predetermined location, whether a pattern exists, or other signatures indicating that the image corresponds to location marker 708).

[0166] Location markers may include: one or more rows 712 comprising one or more markers 708; and one or more columns 714 comprising one or more markers 708. In some embodiments, the plurality of location markers 706 or scenes 706 may be symmetrical (e.g., the same number of rows and columns). In some embodiments, the plurality of location markers 706 or scenes 706 may not be symmetrical (e.g., different numbers of rows and columns).

[0167] Each domino 706 can include a recognizable signature in a contour tree. For example, a domino can include 10 white patches within a black patch. The white patches may not have any sub-patches. A domino configuration can include a contour tree with ten white sub-patches, which are leaves of the black background tree. Therefore, if system 680 detects this configuration (e.g., a black patch with 10 white patches), system 680 can adopt the black patch and process it as a baseline marker. This additional processing may ultimately reject the domino as a marker or accept the domino as a location marker. This possibility extends to any recognizable signature in the contour tree, which may involve a variable number of sub-patches, provided it is unique enough that it can be identified as a marker with good probability from the contour alone, and additional computational resources are spent to study it more deeply.

[0168] Therefore, system 680 can be configured to perform an initial evaluation of the detected image using initial image processing techniques. During the initial processing techniques, system 680 identifies a contour tree to determine whether the contour tree matches or meets the initial screening criteria. For example, if system 680 detects a black patch and 10 white patches (e.g., as shown in domino 708), system 680 can determine that the image may include location markers and forward the image for further processing. By performing the initial evaluation, system 680 can pre-screen the image and select a subset of images for further, more computationally intensive processing. Therefore, system 680 can improve efficiency and reduce the amount of computational resources required to determine the location of the tool relative to the work surface.

[0169] In some embodiments, markers can be detected very quickly by binarizing the input image, computing a contour / patch tree, or searching for a known signature. In some embodiments, binarizing the image may refer to converting the image to black and white. In some embodiments, location markers may encode data into each reference marker (e.g., 708) and be easily detected. For example, reference marker 708 may encode numbers, which allows system 680 to track (manage, maintain, identify, or determine) multiple reference markers present in a scene (e.g., the scene may refer to location marker 706). The number of reference markers 708 may be unique in scene 706, or it may not be unique in scene 706. In some embodiments, markers such as each domino 708 include a pattern of white patches encoded with binary numbers.

[0170] In some embodiments, marker 708 may include patches (e.g., 710) located at predetermined locations. Marker 708 may include patches in each of the four corners, allowing system 680 to determine not only the presence of reference marker 708 but also its layout (such as the marker's position and orientation relative to camera 682). Including patches in predetermined locations improves system 680's ability to decode messages encoded in the marker itself. For example, if the patches are arranged in a grid, identifying each corner provides the grid layout and allows system 680 to map each grid square to 1 or 0 to indicate the presence or absence of a patch. In some embodiments, system 680 may use patches in predetermined locations of the marker to detect the layout of dominoes or marker 708, but then parse some encoded data in another way, which may or may not be encoded in a binarized image / contour tree.

[0171] In some embodiments, marker 708 may include patches that are shaped and can then be resolved with subpixel accuracy by returning a reference panchromatic (or grayscale) image. For example, system 680 may identify patches as circles (or be pre-configured to identify patches as circles). System 680 may determine the bounding box of each patch in the binarized image. System 680 may then use the corresponding grayscale pixels in the grayscale image to fit the ellipse (viewed as a circle in perspective) to the pixel, thus giving subpixel accuracy. System 680 may more accurately detect the position and orientation of the reference marker 708 relative to the camera by using this subpixel accuracy detection of the patch. This position and orientation may then be fed forward in system 680 for further processing, such as for a fixed camera in 3D space.

[0172] Now for reference Figures 8A-8B Systems, methods, and apparatuses for guiding and removing dust are disclosed. Dust removal can refer to the evacuation of material particles removed from a large workpiece (the surface of the material, the working surface) during machining processes such as grinding, milling, and sanding. In the woodworking field, dust may be sawdust. Effective dust removal helps maintain a clean working environment, safe and dust-free breathing air, and prevents dust accumulation near tools, which would otherwise hinder the cutting action of the tool and cause excessive heat generation. Furthermore, the accumulation of sawdust can pose an explosion risk. In addition, for automated guided tools (such as system 680) that use optical methods (e.g., camera 682) for positioning, dust can interfere with the tool's ability to determine its location relative to the material surface. The systems, methods, and apparatuses of this disclosure efficiently remove dust from the working area of ​​the tool. In some embodiments, dust can be milled out of the working area in a controlled direction in the absence of a vacuum source.

[0173] Figure 8A The illustration depicts a tool 800 configured to guide and expel dust and debris according to an embodiment. Tool 800 includes a rotary cutter 1 (or tool tip, or cutting member, or working member) that shears material 2 as the rotary cutter 1 moves axially, laterally, or in a combination thereof through the material 2. Tool 800 includes a tool frame 3. Tool frame 3 may include cavities formed by gaps in tool frame 3. Cavity 3 may be further formed by a space 4 in which a portion of the working material 2 has been removed or cut off. The cutting member of the tool or a milling drill bit or tip may extend through cavity 3. Cavity 3 may form one or more channels or part of a channel. The channel guides airflow 6. The channel is in Figures 9A-9BFurther illustrated below. The tool may include a camera 10, which may include one or more functions of a camera 682. The camera 10 may include, or be referred to as, a sensor, such as an image sensor, an infrared sensor, or a laser sensor. In this embodiment, the working motion of the rotary cutter 1 is a spin along the axis of the rotary cutter 1.

[0174] In some embodiments, the rotational power of the rotary cutter 1 may be generated by a milling machine 5 or spindle 5 including an integrated fan 802 (e.g., a wood milling machine, a metal cutting tool, or a plastic cutting tool). The fan 802 may be a separate fan integrated into the spindle 5, or it may refer to an airflow generated as a byproduct of the spindle 5 of the rotary cutting tool 1. In some embodiments, the fan 802 may be external to the tool, such as outside the spindle 5. The fan 802 may include one or more blades or blades arranged to generate airflow when rotated. The fan 802 may generate a downward airflow 6 that expels dust from the collection cavity formed by the tool frame 3 and the space 4 and along channels in the tool base plate 7. These channels direct dust towards the front of the tool 8, which retains dust to prevent it from accumulating at the rear of the tool 9, which can be targeted by the optical positioning system 10 (e.g., camera 682). In some embodiments, the front 8 of the tool 800 may refer to a portion of the tool facing away from the direction the tool is cutting or a portion of the tool closer to the user. In some embodiments, the rear portion 9 of tool 800 may refer to a part of the tool facing the direction in which the tool is cutting or a part of the tool away from the user. In some embodiments, the rear portion 9 of tool refers to the portion of tool 800 in which camera 10 is aimed. Tool 800 may include a vacuum port 11 that leads to one of the channels formed by gaps 3 and 4 that receive airflow 6.

[0175] Figure 8B An embodiment of tool 801, similar to tool 800, is illustrated, including a vacuum source 12 attached to a vacuum port 11. Vacuum source 12 deflects airflow towards vacuum source 13. This airflow can be drawn into vacuum source 12 through a connecting channel formed by gaps 3 and 4 in substrate 7. In this configuration, dust can be efficiently removed from the tool without entering the surrounding environment (e.g., the rear of tool 9).

[0176] The channel formed by cavities 3 and 4 allows the airflow 6 generated by the fan 802 of the tool spindle 5 and the airflow generated by the vacuum source 12 to act along a common path to remove dust. This provides a highly efficient dust removal system because the vacuum source 12 does not resist the airflow generated by the integrated spindle fan 802.

[0177] Figure 9AThe illustration shows a top perspective view of a device 900 for guiding and removing dust. Device 900 may be coupled to, be part of, or be formed by one or more components of system or device 800 or 801. In some embodiments, device 900 includes a base plate 7 of tool 800. Base plate 7 includes channels 904a-b formed by voids or cavities 3 in base plate 7. A portion of base plate 7 faces, rests on, or is opposite to material 2. Fan 802 generates an airflow 6 flowing downward toward material 2. Vacuum source 12 generates an airflow 13 toward vacuum source 12 and vacuum port 11. The direction of airflow 6 toward material 2 is indicated by X, while the airflow 13 toward vacuum port 11 is shown as a dot in a circle.

[0178] In some embodiments, channels 904a-b formed in the substrate 7 are V-shaped. In some embodiments, two channels 904a and 904b extending from the cavity 3 may be present. In some embodiments, only one channel may be present (e.g., only channel 904a). In some embodiments, multiple channels may be present (e.g., two or more channels). One of the multiple channels may include a vacuum port 11 coupled to the vacuum source 12. Channels 904a and 904b may be U-shaped. Channel 804 may include a third channel extending perpendicular to channels 904a and 904b via the cavity 3.

[0179] Channels 904a and 904b can form an angle 906. Angle 906 can be in the range of 1 degree to 180 degrees. In some embodiments, angle 906 can be 90 degrees, 45 degrees, 60 degrees, 120 degrees, etc. Angle 906 can be selected such that dust from material 2 is effectively guided away from the rear 9 of the tool and via channels 904a-b and airflows 6 and 13 to the front of the tool 8.

[0180] Channels 904a-b may include channel depth. The channel depth may be the same for channels 904a and 904b, or it may differ between different channels. Channel depth can be greater than zero. Channel depth can be a value ranging from 0.02 inches to 2 inches. The depth can be smaller or larger depending on the type of tool or the type of material being cut. For example, the size of the particle being guided or extracted can determine the channel depth (e.g., shallower channel depths are used for smaller particles, and deeper channels are used for larger particles).

[0181] In some embodiments, the first component of the airflows 6 and 13 generated from the fan 802 may be greater than the second component of the airflows 6 and 13 generated from the vacuum source 12. In some embodiments, the first component of the airflows 6 and 13 generated from the fan 802 may be less than or equal to the second component of the airflows 6 and 13 generated from the vacuum source 12.

[0182] In some embodiments, an airflow generated from the vacuum source 12 can be determined such that the airflow holds the tool 800 (or device 900) against the material 2. This can increase friction between the tool and the material contact portion, thereby increasing stability when cutting or performing tasks on the material 2.

[0183] Figure 9B The illustration shows a device 902 for guiding or removing dust from the rear 9 of the tool. Figure 9B The illustration shows a top perspective view of device 902 or substrate 7 including channels 904a-b. Device 902 may resemble or include one or more components of device 900. In some embodiments, device 902 includes a vacuum port 11 but is not coupled to a vacuum source (e.g., as shown in device 900). Although device 902 may not be coupled to a vacuum source at vacuum port 11, device 902 can still guide and extract dust and debris via channel 804 and airflow 6 generated by a fan (e.g., fan 802).

[0184] Vacuum port 11 can be positioned anywhere along channel 904a or channel 904b. In some embodiments, vacuum port 11 can be positioned closer to the edge or corner of substrate 900 relative to cavity 3. The distance 908 between vacuum port 11 and the edge of substrate 902 can be greater than zero. The distance 910 between vacuum port 11 and cavity 3 can be greater than zero. Distance 910 can be different from distance 908. Distance 910 can be greater than distance 908. Distance 910 can be a multiple of distance 908. Distances 908 and 910 can be determined to allow for efficient and effective guidance and extraction of dust from the rear 9 of the tool.

[0185] Figure 9C The diagram illustrates a bottom perspective view of base plate 910. Base plate 910 may correspond to base plate 7. Base plate 910 includes channels 912a-b, which may correspond to channels 904a-b. Substrate 910 includes a cavity 916 that may correspond to cavity 3. Substrate 910 includes a vacuum port 914 in channel 912, which may correspond to vacuum port 11. Vacuum port 914 may or may not be connected to a vacuum source.

[0186] The substrate 910 can be made of any material that facilitates the operation of the system 680 or the tool 800. The material can be metal, plastic, alloy, or other materials that provide sufficient structural support and friction for the tool 800 to allow the tool to slide on the surface while providing a certain degree of stability.

[0187] Figure 9D This is a top perspective view of substrate 920, which can correspond to... Figure 9B An embodiment of substrate 902. Substrate 920 includes a cavity 922 through which the tip of a cutting member or tool can extend. Substrate 920 may include a vacuum port 924.

[0188] The substrate 920 may include channels on the bottom of the substrate 920 (e.g., a portion or side of the substrate opposite the material on which the task is to be performed). The substrate 920 may include additional openings, cavities, or recesses for one or more screws, or coupling mechanisms for coupling the substrate 920 to a tool (such as tool 800).

[0189] In some embodiments, a portion of the airflow generated by a fan, a portion of the airflow generated by a motor driving the working component, or a portion of the airflow generated by a vacuum may be directed to cool one or more electrical components (e.g., power supply, heat sink) of the tool (e.g., tool 800).

[0190] refer to Figure 10A This document illustrates a system, method, and apparatus for determining the position of a tool tip relative to a work surface or material. The system, method, and apparatus can calibrate tool position detection. In some embodiments, system 680 may be configured, designed, or constructed to determine the position of a tool tip relative to a work surface. System 1000 (or tool 1000) may move, position, or control the movement of tool tip 24 in one or more directions (e.g., Figure 10B The surface of the tool tip 24 in contact with the material 2 is shown. Control can be activated manually or automatically. In some embodiments, the tool 1000 may include or be configured with automatic control of the height of the rotary cutter 24 relative to the surface of the workpiece or material 2. The system 1000 may include... Figure 1 -9 and 11A-11B are one or more functions or components of a system or apparatus.

[0191] System 1000 (or tool 1000) can calibrate the position detection of the tool. System 1000 may include a base 18 coupled to tool 1000. Base 18 may contact a work surface 2. In some cases, base 18 may include a pad 22. For example, base 18 may include a pad 22 such that base 18 contacts work surface 2 via pad 22. Thus, in some embodiments, base 18 may refer to both base 18 and pad 22. In some embodiments, base 18 may not contact the work surface. Base 18 may contact a sensor 23, which contacts pad 22, and pad 22 may contact the work surface or workpiece or material 2.

[0192] System 1000 may include one or more computing devices having one or more processors. In some cases, system 1000 may include one or more computing devices located remotely from the tool. For example, the tool may include a wireless or wired communication interface that can send and receive data or control information from one or more computing devices located remotely from the tool.

[0193] System 1000 may include one or more sensors 23 communicatively coupled to a computing device. System 1000 may include a motor 19 controlled by the computing device to extend and retract a tool tip 24 toward and from a working surface 2. Motor 19 may control, include, or refer to one or more components of system 1000 configured to extend or retract a tool tip 24, including, for example, a movable carriage 15.

[0194] System 1000 can identify a first value of a parameter indicating the amount of force applied to a work surface by a portion of the base via one or more sensors 23. For example, sensor 23 may include a force sensor 23. System 1000 can determine the first value as a first force value, indicating a default or initial force applied to material 2 by the base 23. This can indicate the weight of the tool. The force can be measured or determined in Newtons or pounds. Sensor 23 can repeatedly detect or measure the value of the parameter based on time intervals (e.g., every 0.1 seconds, 0.5 seconds, 1 second, 2 seconds, 3 seconds, 5 seconds, or some other time interval). Sensor 23 can compare the first value or first measurement with a second or subsequent measurement. Sensor 23 can repeatedly compare the measurement with subsequent measurements until the sensor detects a change or difference between the measurements (e.g., a change of 0.5%, 1%, 2%, 3%, or an absolute change such as 1N, 0.5N, 0.25N, 0.1N, 0.05N, or 2N). The difference can refer to a difference of a predetermined threshold. The threshold can be fixed or dynamic. The threshold can be based on the resolution of sensor 23.

[0195] System 1000 can instruct motor 19 to extend the working member or tip 24 toward the working surface 2. System 1000 can then identify a second value of a parameter via sensor 23 when the working member 24 contacts the working surface 2. This second value can be a second force value. When the tool tip 24 is not in contact with the working surface, the second force value can be less than the first force value determined by sensor 23. In some cases, multiple sensors 23 may be present, and each sensor can determine the first force value and the second force value. In some cases, the first sensor can determine a first force value that is different from the first force value detected by the second sensor. The first value can indicate when the tool tip is not in contact with the material 2. The first and second sensors can identify different first values ​​because the center of gravity of the tool is not uniformly located between the first and second sensors. Therefore, when the tool tip 24 contacts the material 2, the second force value detected by the first sensor can be different from the second force value detected by the second sensor. For example, when the tool tip 24 contacts the material 2, the base 18 of the tool can be tilted at an angle (e.g., 1 degree, 2 degrees, 5 degrees, or 10 degrees). The tilt of the base 18 can cause the first sensor 22 to measure a second force value that is less than the first force value measured by the first sensor 22, while the second sensor 22 can measure a second force value that is greater than the first force value measured by the second sensor.

[0196] System 1000 (or computing device) can identify a first value of a parameter based on a portion of the tool base 18 in contact with the working surface 2. In response to motor 19 causing the working member 24 to contact the working surface 2, system 1000 can identify a second value of the parameter via sensor 23 based on a portion of the tool base that is not in contact with the working surface (e.g., partially in contact or applying a smaller force than previously applied on the surface). For example, non-contact can refer to or include a smaller force applied by a portion of the base 18. In some cases, system 1000 can instruct motor 19 to contact the working surface 2 to tilt at least a portion of the base 18. Tilting the base 18 can refer to distributing the force applied by the base 18 such that a first portion of the base 18 applies a greater force on the material 2 than a second portion of the base 18. Tilting the base 18 can refer to changing the distribution of the force applied by a portion of the base 18. System 1000 can determine the z-axis position of the working member 24 relative to the working surface 2 in response to the working member 24 contacting the working surface 2 and tilting the tool base 18.

[0197] System 1000 can compare a first value of a parameter with a second value of the parameter to generate a difference between the first and second values. System 1000 can determine an absolute difference (e.g., a difference in the amount of force), or simply determine that a difference exists because the two values ​​are not equal to each other. System 1000 can determine that if the first and second values ​​of a particular sensor 22 are not equal, it is because the tool tip 24 contacts the material 24 and deflects or distributes the force applied by the base 18 onto the material 2. System 1000 can determine the z-axis position in response to a first force value being greater than a second force value due to a smaller force that can be applied to the material 2 by the base 18.

[0198] In response to detecting this difference, system 1000 can determine that tool tip 24 has contacted the material and use this information to determine the z-axis position of the working component relative to the working surface. For example, system 1000 can determine that this is the baseline or default position of tool tip 24. System 1000 can calibrate the position of tool tip 24 such that this is the zero position. When system 1000 retracts tool tip 24 from the material, system 1000 can monitor or track the distance between tool tip 24 and the calibrated zero position corresponding to the surface of material 2. For example, system 1000 can control or instruct motor 19 to retract or move tool tip 24 away from the calibrated zero position corresponding to the surface of material 2 by a certain distance (e.g., 1 mm, 5 mm, 1 cm, 5 cm, or 10 cm). In some cases, system 1000 can instruct or control motor 19 to insert tool tip 24 into material 2 a certain distance. For example, system 1000 can instruct or control motor 19 to insert tool tip 24 one centimeter beyond the calibrated zero position, which can insert tool tip 24 one centimeter into material 2. For example, system 1000 can use the calibrated zero position to form a one-centimeter hole in the material.

[0199] System 1000 can instruct motor 19 to retract the working member 24, which is in contact with the working surface 2, away from the working surface 2. System 1000 (or its sensor 23) can identify when the working member 24 is no longer in contact with the working surface by measuring a third value of a parameter. The third value of the parameter can be greater than the second value of the parameter because the tool tip 24 no longer counteracts the force applied to the material 2 by the base 18 (e.g., via sensor 23 or pad 22). When the tool tip 24 is also no longer in contact with the material 2, the third value of the parameter can be equal to (e.g., substantially equal to within 1%, 2%, 5%, or 10%) the first value of the parameter. System 1000 can determine a second z-axis position of the working member relative to the working surface in response to a second difference between the first and third values ​​being less than a threshold (e.g., a difference less than a percentage of the first or third value, such as 1%, 2%, 3%, 5%, or 10%; or a difference less than a force value, such as 1 Newton, 0.5 Newtons, 0.01 Newtons, 2 Newtons, 5 Newtons, or 10 Newtons).

[0200] Therefore, to facilitate control of the height of the rotary cutter 24, the tool can determine a reference point or "zero" point so that the tool 1000 (e.g., via the cutting member 24) can be positioned to remove a certain amount of material 2. For example, the tool 1000 can embed the rotary cutter 24 into the workpiece 2 to a specified depth before the rotary cutter 24 moves laterally to form a groove. The tool can use a method to precisely determine the position of the tool tip relative to the working surface. In some embodiments, the tool 1000 uses a low-cost sensor 23, such as a force sensor, which detects the increment or change of force applied to the material 2 by a portion of the tool 1000. In some cases, the sensor 23 may include a capacitive sensor, a photoelectric sensor, an electromagnetic sensor, a load cell, a strain gauge load cell, a piezoelectric crystal, a hydraulic load cell, or a pneumatic load cell.

[0201] As the tip 24 moves toward and contacts the material 2, the force applied by the base 18 can be reduced because the force is unloaded onto the tip of the tool 24. Detecting this change in force can indicate that the tool tip is contacting the surface of the material 2 and allow the tool to configure, set, or initialize that position to zero. This can be useful for handheld power tools, including those with automatic guides, and can also be applied to fully automated machine tools.

[0202] In some embodiments, tool 1000 includes a milling drill bit 1 mounted in the spindle 14 of a milling machine 5 (e.g., a woodworking finishing milling machine). The milling machine 5 may be fixed in a movable carriage 15, which slides on a guide rail 16. The guide rail 16 may be mounted to a structural post 17. The structural post 17 may be fixed to a base 18 of tool 1000. A motor 19 may be fixed to the base 18 of tool 1000 to rotate a lead screw 20. The lead screw 20 may pass through a nut 21 on the movable carriage 15. The lead screw 20 may include a square thread, a trapezoidal thread, or a sawtooth thread. When the motor 19 rotates, the movable carriage 15 translates proportionally to the pitch of the lead screw 20.

[0203] In some embodiments, the movable carriage 15 may be mounted to a movable stage constrained by a frame in the Z direction. In some embodiments, a Z-post or guide rail 16 may be mounted to a movable XY worktable constrained by a frame of device 1000 in the Z direction. For example, the tool or device 1000 may include a drill or frame having a worktable that can be positioned on a surface of a material such as wood. The tool may be electrically or mechanically coupled to the frame, and the frame, together with the tool, may pass over the material. The tool may move (or provide instructions for user movement) the frame, worktable, or tool to a desired XY or Z coordinate on the material. For example, the tool may include one or more components (e.g., drill, tool, worktable, etc.) of the system described in U.S. Patent Application Publication No. 2015 / 0094836, which is incorporated herein by reference in its entirety.

[0204] In some embodiments, tool 1000 may use one or more other configurations or techniques to move the tip 24 of tool 1000 relative to a work surface. Other configurations may include power screws, translation screws, ball screws, roller screws, hydrodynamics, tear trains, worm gear drives, rack and pinion drives, electromagnetic actuation, piezoelectric actuation, hydraulic lifts, electric lifts, rotary lifts, pneumatic lifts, mechanical lifts, levers, gears, etc.

[0205] The base 18 of the tool (or device) 1000 can be separated from the working surface 2 by a pad 22 on which the device 1000 rests. In some embodiments, one or more force sensors 23 may be positioned between the pad 22 and the base 18 of the device 1000. When the device 1000 rests on the working surface 2, the gravity generated by the weight of the device 1000 is partially or completely passed through the one or more force sensors 23.

[0206] To position the tip 24 of the cutting tool 1000, the system or device 1000 can move the carriage 15 closer to the work surface 2, causing the tip 24 to move toward the work surface. During this movement, the force through the force sensor 23 can be measured (e.g., in response to motion measurement, periodically, or based on time intervals such as every millisecond, 10 milliseconds, 1 second, etc.). Once the tip 24 of the cutting tool contacts the work surface 2, the additional movement causes a small portion of the weight of the device 1000 to be transferred to the work surface 2 through the tool tip 24, and the force through the sensor 23 decreases accordingly. The system detects the change in force on one or more sensors 23 and can stop the movement of the carriage. The position of the carriage 15 is recorded, and the position of the carriage 15 can correspond to the point where the tool tip is positioned on the workpiece surface. Because the tool tip and the work surface may be rigid, a detectable weight transfer occurs over a very small distance, and with a 1 / 4” carbide milling drill bit used on a birch plywood surface, the error of this method can correspond to less than 0.0005.

[0207] System 1000 can repeatedly extend or retract the tool tip 24 toward or from the surface of material 2 or supporting material 2 (e.g., a table, stand, floor, or other supporting structure). System 1000 can repeatedly extend and retract the tool tip 24 to generate or create a three-dimensional map of material 2.

[0208] In some cases, system 1000 may extend tool tip 24 adjacent to the edge of material 2. System 1000 may extend tool tip 24 adjacent to the edge of material 2 until tool tip 24 contacts the surface of supporting material 2. System 1000 may determine the thickness of material by determining the distance by which tool tip 24 extends beyond the surface of material 2 to contact the surface of supporting material 2. The system may use force sensor 23 to detect when tool tip 24 contacts the surface of material 2 or supporting material to determine these positions. For example, system 1000 (or motor 19) may extend working member 24 toward the surface supporting working surface. A portion of tool base 18 may contact working surface 2 while a portion of tool base 18 may be away from material 2. Alternatively, in some cases, base 18 may contact material 2, and the material may be shaped or configured such that when tool tip 24 extends, it may contact the surface of supporting material 2 opposite to the surface; or tool tip 24 may extend through a hole in material 2 to contact the surface of supporting material 2. System 1000 may detect contact of working member 24 with the surface supporting working surface (e.g., via sensor 23). For example, system 1000 can detect a third value of a parameter (e.g., force) and determine the thickness of the working surface 2 in response to a second difference between the first and third values ​​being greater than a threshold (e.g., the difference may be greater than 1%, 2%, 5%, or 10% of one of the first or third values; or the difference may be greater than, for example, a force value of 1 Newton, 0.5 Newton, 0.01 Newton, 2 Newton, 5 Newton, or 10 Newton).

[0209] System 1000 can determine multiple location points based on the contact of the tool's working member 24 with the working surface. For example, system 1000 can repeatedly extend and retract the working member 24 to contact the material 2 and move the working member 24 away from the surface. Whenever the tool tip 24 contacts (or does not contact) the material 2, system 1000 can record information. For example, system 1000 can record or identify location points. Each location point can have x-axis, y-axis, and z-axis coordinates. The xy coordinates can be determined using markings on the material surface and can be relative to the surface of the material or a position on the material surface. The xy coordinates can be determined using reference markings on the material surface, imaging techniques, or vision techniques. For example, a second sensor of the tool (e.g., a vision sensor or camera) can use reference markings placed on the working surface to determine the x-axis and y-axis coordinates of each location point. The system can determine the z-coordinate (or depth) by extending the tool tip 24 until the tip 24 contacts the surface and measuring the depth relative to a calibrated zero position. The calibrated zero position can be a position on the material surface. System 1000 can use the location points to generate a three-dimensional map of the working surface 2.

[0210] System 1000 can measure the geometry of work surface 2 by associating the position of tool tip 24 with the position of a device (e.g., tool 1000) on the plane of work surface 2. To do this, tool tip 24 (e.g., a cylindrical tool with a conical or spherical tip) can be first correlated with a reference frame of tool 1000 by detecting the position of tool tip 24. Once the position of tool tip 24 relative to the tool's reference frame is known, the tool can be laterally positioned on the surface of interest (e.g., work surface 2) to determine the vertical position of the work surface. The vertical position of the work surface can refer to the surface of the material of the work surface. In some cases, the vertical position can indicate a groove, cavity, indentation, or recess at a depth of interest in a piece of wood. In some cases, the vertical position can indicate a raised portion, protrusion, bulge, or projection at a depth of interest in a piece of wood. The tool tip can then be inserted, extended, lowered, recessed, or otherwise moved until it contacts the surface of the material portion (e.g., a groove or protrusion). Additional displacement of the tool tip beyond the top portion of the surface in which the tool tip first contacts the work surface can indicate the depth of the groove. Similarly, a decrease in displacement of the tool tip above the surface portion where it first contacts the work surface can indicate the height of the protrusion. If the surface profile of the groove is of interest, the tool can move around the groove to multiple points. The tool can determine the depth at each of these points. The tool can record its depth and lateral position (e.g., x, y, and z coordinates, where the x and y coordinates indicate lateral position and the z coordinate indicates depth). Lateral movement can be performed automatically using a built-in positioning stage, manually by the user, or a combination of both.

[0211] System 1000 can identify or determine the center position of a hole on the working surface 2. For example, a tool 1 with a tapered tip 24 can be assembled into the system. The tool 1 can then be positioned approximately above the center of the hole (e.g., within 5%, 10%, 15%, 20%, 25%, 30%, 50%, 75%, or 90% of the hole's diameter) and nested in a circle until the tip 24 contacts the hole. Because the tool tip 24 can be tapered, it allows the tool to be centered on the hole. The tool can then use, for example, a vision system with a camera 10 to determine its lateral position (e.g., x and y coordinates) to determine the location of the hole.

[0212] System 1000 may include or communicate with a computing device, processor, or microprocessor (such as the processor of system 680). The computing device may include one or more processes of system 680. System 1000 may use the computing device to control the movement of a positioning motor and may also measure forces passing through one or more force sensors 23. Sensors 23 may include, for example, force-sensitive resistors, piezoelectric sensors, strain gauges, load pins, shear beams, tension chains, magnetic level gauges, torque sensors, load cells, hydraulic load cells, pneumatic load cells, elastic devices, magnetoelastic devices, plastic deformation sensors, foil strain gauges, etc.

[0213] In some embodiments, the tool may use a camera, visual information, or an IMU to detect tilt. The tool may include a camera 10 (also in... Figure 8A (as shown in the diagram) or other sensors. Camera 10 may include one or more components or functions of camera 682. Camera 10 can determine a displacement in the captured image that corresponds to a tilt caused by the lifting of the base. Camera 10 may take a first picture or image before the tool tip 24 contacts the work surface 2, and then take a second image when the tool tip contacts the work surface. Camera 10 may repeat taking images based on time intervals (e.g., every 1 second, 2 seconds, 3 seconds, 0.5 seconds, or 5 seconds) and compare the first image with the subsequent image to identify the tilt. Camera 10 may take a series of images and then compare the images with each other to detect when the tool tip contacted the surface causing the tilt. In some cases, each image in a series of images may be associated with a timestamp. Each image may also be associated with the position of the tool tip, marked with the position of the tool tip, or otherwise correspond to the position of the tool tip. The system can determine which image in a series of images first indicates a tilt (e.g., when the tool tip contacts the material 2, the object in the image taken by camera 10 may appear closer when the tool 1000 is tilted toward the rear of the tool). In some cases, system 1000 can determine pixel differences or misalignments between a first image and a subsequent image. In response to detecting misalignment in pixels, system 1000 can determine that the tool tip contacts material 2 at a timestamp corresponding to a subsequent or second image having misaligned pixels relative to the first or previous image. The camera can compare the first image with the second image to identify tilt or variation between the two images.

[0214] In some embodiments, the system 1000 can determine when the working member 24 contacts a known surface (e.g., the top surface of the base 18). Once the working member 24 leaves the known surface, the system 1000 can bring the working member 24 into initial contact with the working surface 2 by extending it downwards by a known offset equal to the height between the known surface and the working surface 2. This method of determining contact between the working member and the working surface can be used if the working member can penetrate the working surface and thus obscure the detection of contact between the working member and the working surface.

[0215] In some embodiments, the contact between the working member and the working surface can be determined by detecting the power consumption of an actuator (e.g., a motor driving the z-axis) that is moving along the axis. Once the working member contacts the working surface, the power consumption of the actuator increases due to the increased load on the axis as the working member pushes towards the working surface. In some embodiments, the power consumption of the axis actuator can be measured using an in-line current sensor in the actuator voltage supply. In some embodiments, the contact between the working member and the working surface can be determined by measuring the deviation between the actuator step position and the actuator axis encoder reading—this deviation increases once the working member contacts the working surface.

[0216] In some embodiments, one or more processors in the tool (e.g., system 1000) may monitor signals from one or more of the following: a force sensor, a camera, a current sensor supplying power to an actuator, an encoder monitoring motion along an axis, or an IMU that simultaneously detects contact between a working member (e.g., a tool tip) and a surface (e.g., a working surface, a surface within the tool). In some embodiments, one or more processors may analyze one or more monitored signals to determine contact between the working member and the surface. In some embodiments, contact between the working member and the surface may be determined based on signals providing an optimal signal-to-noise ratio. In some embodiments, contact between the working member and the surface may be determined based on two or more signals confirming that the working member has made contact with the surface.

[0217] Sensor 10 may include an image sensor or a camera. Parameters may include pixels. Pixels may have locations in an image. System 1000 may capture (e.g., via an image sensor) a first image including pixels having first values ​​(e.g., binary values, 256-bit values, red, green, blue values, grayscale values, brightness values, or numerical values). System 1000 may capture a second image including second values ​​of the pixels. The second value may be used for the same pixel as the first value. Pixels may be locations in an image. System 1000 may compare the first image including the first value with the second image including the second value to identify the difference between the first and second values. The system may compare one or more pixels in the first image with one or more pixels in the second image to detect differences. The system may compare two captured images to determine if they are misaligned. The images may be misaligned due to the base being tilted at an angle, which may cause the camera to capture the second image at a different angle or from a different viewpoint compared to the first image. Therefore, the system may attribute the misalignment to the tool tip 24 contacting the surface of the working material and tilting the base.

[0218] The tool can use a capacitive sensor 50 or an electromagnetic sensor 60 to determine the proximity of the tool tip 24 to the working surface 2. For example, the electromagnetic sensor 60 can sense or detect changes in the inductance of a sensing coil near the tool tip 24 or working component 24, which includes metal, by sensing eddy currents induced in the metal.

[0219] In some cases, tool 1000 may include an IMU. For example, sensor 23 or sensor 10 may include an IMU, such as a 3-axis accelerometer or gyroscope. The IMU may indicate tilt in response to motion or sudden movement caused by the lifting of the base. For example, when the tool tip is not in contact with the surface, the IMU may determine a first value indicating the acceleration of the tool's base. For example, the first value may be zero because the base may rest on the work surface. When the tool tip touches or contacts the surface, the IMU may determine a second value. The second value, or second acceleration value, may indicate the acceleration, impact, movement, force, or other displacement of the base caused by the tool tip contacting the work surface and moving the base mechanically connected to the tool tip. A computing device may compare the first value with the second value to identify the acceleration of the tool's base based on the contact between the working member and the work surface. In some cases, the computing device may determine that the first value and the second value are not equal or substantially equal (e.g., within 1%, 2%, or 5%), and determine that the tool tip is in contact with the work surface based on the difference in acceleration.

[0220] The tool can determine or detect additional information about the tool, including the position of the tip or working member, its diameter, or the tool geometry. Determining the tool geometry can include or refer to determining the diameter of the cutting tool. The tool geometry information can be used to automatically determine the length of the cutting groove of the working member and the angle of the cutter (e.g., a V-shaped engraving drill bit or a helix angle). For example, the tool can include a camera 10 or a beam interruption sensor 10 (e.g., a laser beam interruption sensor, an infrared beam interruption sensor, a photoelectric sensor, or an optical sensor) near the tool tip 24. The working member 24 can fall within the line of action of the sensor 10, and the tool can detect the position of the working member 24 when the working member 24 interrupts the beam formed by the sensor 10. In some cases, the axis of the beam can be pre-calibrated relative to the tool's coordinate system.

[0221] In some cases, the system may include one or more vision cameras 10 that aim at the tool tip 24 or tool component 1 to determine the position of the working component 1 or tool tip 24. The vision camera 10 may be pre-calibrated to the tool coordinate system to detect the tool tip 24. In some cases, the vision camera may include a linear charge-coupled device (CCD) sensor or other image sensor. A linear CCD sensor can detect the tool tip using less processing than a vision camera.

[0222] System 1000 can measure the diameter of the working member 1 or the tool tip 24. The tool can displace the tool tip 24 while measuring or determining its position. By displacing the tool tip, the tool can detect its diameter using a single beam interruption sensor 10 by moving the tool from left to right through the sensor 10. Lateral movement of the tool can cause an initial interruption and then allow the beam to be unblocked, providing a measurement of the tool diameter. Since milling drill bits can have helical flutes, the tool can perform multiple measurements along its length to determine the diameter. The tool can determine the diameter using eddy currents or capacitive sensing using a one-dimensional sensor to collect multidimensional information about the tool geometry by correlating sensor data with the tool position. The tool can determine additional information about the tool tip 24, such as the tip angle in the case of a V-cut drill bit. Furthermore, the tool can include a vision camera 10 to detect the tool's geometric characteristics.

[0223] System 1000 may include or be configured with a hybrid positioning system to position the working member of a tool. For example, the system may include a worktable. The system may include a sliding pad adjacent to the worktable to facilitate movement of the worktable. The system may include at least one motor adapted to move the worktable. The system may include at least one motor controller for controlling at least one motor. The system may include a computing device or processor combined with one or more software applications for processing data and providing information to the at least one motor controller. The system may include a first sensor configured to capture first information about a material surface to construct a map of the surface. The first information may include an image of the surface. The system may include a second sensor communicatively coupled to the processor. The second sensor may capture second information about the surface for determining at least one of the location of the working member and the orientation of the working member relative to the surface. The computing device or processor may use the first information captured by the first sensor to construct a map of the surface. The computing device or processor may receive a design corresponding to the map of the surface constructed using the first information. The processor may display the design overlaid on the map via a display screen. The system may receive second information about the surface via the second sensor. The system may determine at least one of the location of the working member and the orientation of the working member relative to the surface based on the second information about the surface and based on the map. The system can display the location of the working component overlaid on a map via a display screen. The system can determine the desired location of the working component based on the design registered on the map and at least one of location and orientation. The system can provide motor control information to control at least one motor to move the worktable and working component to the desired location as the tool advances along a first direction within a selected range substantially adjacent to the design profile. As the tool advances along the first direction, the system can automatically realign the tool with the boundary edge of the design in a second direction.

[0224] For example, system 1000 may use the determined z-axis position of the working component, at least in part, to provide motor control information for controlling one or more motors to move the working component from a first location to a second location. The motor control information may include one or more of x-axis, y-axis, or z-axis information. The tool may advance in a direction adjacent to a predetermined path of the tool's working component.

[0225] In some cases, system 1000 may receive first information from a first sensor and, based on the first information about the material surface, use a map of the surface to determine at least one of a first location (e.g., xy-coordinates or xyz-coordinates) of the tool's working component and its orientation relative to the surface. The system may indicate the first location of the tool's working component relative to the surface map via the tool's display screen. The system may retrieve a design corresponding to the surface map to identify the path of the tool's working component. The system may compare the first location of the tool's working component with the design to determine a second location of the tool's working component corresponding to its path. The system may provide motor control information based on at least one of the second location and orientation to control at least one motor to move the table and working component to the second location. The tool may advance in a direction adjacent to the path of the tool's working component.

[0226] The system can employ constant speed technology to provide motor control information, controlling at least one motor to move the table and workpiece to multiple subsequent locations while the tool advances in corresponding subsequent directions. As the tool advances in a fourth direction, the system can automatically realign the tool with the design boundary edge in a third direction. The system can display a target range window, which presents a diagram of the tool's reference point, the expected cutting path, and the desired tool movement path. The expected cutting path can indicate its position in the xy coordinate system and its z-axis depth.

[0227] The sensor can receive or capture real-time feeds of image data. The system can receive real-time feeds of image data captured by the sensor and use the real-time feed image data to compare the previous position in the design (e.g., xy coordinates or xyz coordinates) with the next position preferred in the design (e.g., xy coordinates or xyz coordinates) to automatically reposition the tool.

[0228] Although Figures 10A-10B The illustration shows the determination of the position of the rotary cutting tool 24 relative to the work surface 2, but the method can be applied to a drawing pen, vinyl cutter, pipette tip, vacuum nozzle for picking up and placing a machine, or any other system to determine the zero position of the working component 24 relative to the work material 2.

[0229] Figure 10C The illustration shows a force sensor 23 adjacent to the pad according to an embodiment. The force sensor 23 can be temporarily placed there to perform a calibration procedure to determine the zero position. The force sensor 23 can be removed after the calibration process is completed.

[0230] Figure 10DThe illustration shows a force sensor 23 positioned or placed on top of the substrate 920. One or more force sensors 23 can be positioned anywhere on the tool 1000 such that the force sensor 23 can detect changes in force corresponding to the tool tip 24 in contact with the surface of the material 2. The change in force can be a decrease in the detected force because some force is transmitted to the material via the tool tip 24 rather than through the force sensor 23.

[0231] Figure 11A and 11B A tool 1100 with a substrate 1105 is illustrated. The tool 1100 may include one or more components of the tool 1000, and the substrate 1105 may correspond to the substrate 910. Figure 11A The illustration shows dust or particles remaining on the material when dust removal and guiding technologies are not used. Figure 11B The illustration shows how the dust guiding and extraction techniques described herein can remove dust from material (e.g., via airflow generated by a fan and / or extraction via a vacuum source or vacuum port through a channel remote from the rear of the tool). Tool 1100 can move particles of material removed from the working surface by the working member via cavities or channels in the tool's base plate. Tool 1100 can extract particles from the working member via the cavity through the working member using a vacuum.

[0232] Figure 12 A block diagram of a method for position detection of a calibration tool according to an embodiment is illustrated. In short, method 1200 includes a tool that detects a first value of a parameter at 1205. At step 1210, the tool extends a working member toward a working surface. At 1210, the tool detects a second value of the parameter. At 1220, the tool determines the position of the working member relative to the working surface. Method 1200 can be... Figure 1-11B One or more components or modules of one or more systems described herein are executed.

[0233] Still referencing Figure 12 Furthermore, and more specifically, the tool detects a first value of the parameter at 1205. The tool (e.g., via a sensor) can detect the first value of the parameter. The sensor may be communicatively coupled to a computing device including one or more processors. The parameter, or its first value, may indicate the magnitude of a force applied to or toward a work surface by a portion of the tool's base. The tool can detect the first value of the parameter if a portion of the tool's base is in contact with the work surface. For example, a portion of the base may rest or be placed on the work surface or material. In some cases, the base may include a pad in contact with the work surface.

[0234] At step 1210, the tool extends the working component toward the work surface. The tool (e.g., via a motor controlled by a computing device) can extend the working component toward the work surface. When the working component contacts the work surface, the base may at least partially contact the work surface. For example, the working component may contact the work surface and at least partially lift or tilt a portion of the base. This portion of the base may or may not contact the surface, depending on the degree to which the tool tip in contact with the material surface lifts or tilts the base. In some cases, the base may still contact the surface, but the amount of force exerted by the base on the work surface may be smaller. This smaller amount of force may correspond to the second value of the parameter.

[0235] At 1210, the tool detects a second value of the parameter. The tool (e.g., via a sensor) can detect when the working member contacts the work surface by identifying a second value of the parameter that is less than the first value. The second value can be less than the first value because the force applied by a portion of the base can be smaller due to the force distributed by the tool tip. The force can be distributed such that the tool tip applies some force to the material, or that another portion of the base applies a greater force than the first portion of the base. For example, the tool tip can tilt the base so that the first portion of the base applies a smaller force than the second portion of the base. For example, in response to a motor causing the working member to contact the work surface, the tool can detect the second value of the parameter even when a portion of the tool's base is not in contact with the work surface. The tool can determine the z-axis position of the working member relative to the work surface by tilting the base in response to the working member contacting the work surface.

[0236] At 1220, the tool determines the position of the working component relative to the working surface. The tool (e.g., via a computing device) can determine the z-axis position or depth of the working component relative to the working surface in response to a difference greater than a threshold between a first and a second value. The tool can calibrate its position detection system based on these detected z-axis positions. For example, the tool can set this position to zero, initial, or default. The system can then determine the z-axis coordinates or position of the tool tip relative to the calibrated zero position. In some cases, the tool may not calibrate the detected surface to a zero position but may record the absolute distance of the spindle. Because the tool tip length can vary based on the type of working component or tool, the position of the spindle tip can be predetermined, as it is not interchangeable.

[0237] exist Figure 13-21 The form and structure of embodiments of this disclosure used with cutting tools are provided and described. Figure 13-21The embodiments depicted provide a system or drill 100 configured for use with a milling machine 500. The system 100 includes two support legs 104 attached at their lower ends to a base housing 130 and terminating at their upper ends in a device bracket 122. The device bracket 122 includes left and right display clips 124 for clamping or locking a monitor or smart device 570 into the device bracket 122. The device 570 includes a display screen 572 for the user to view the cutting path for that particular purpose. The base 130 also has left and right handles or grips 106 attached via gripping support arms 108.

[0238] The lower end of the base 130 has a base plate 139, which surrounds the worktable 150 and the lower worktable slide pad 151. The base 130 and the base plate 139 are fastened to each other, for example, by machined screws. Figure 20 As shown, the base plate 139 has a bottom sliding pad 141 attached to the bottom. The bottom sliding pad 141 is used to assist the drill 100 in moving along the surface of the material being processed. The bottom sliding pad 141 can be made of high-density polyethylene, Teflon, or other suitable materials that are both durable and suitable for sliding along the material.

[0239] The milling machine 500 is added to the drilling rig 100 by attaching the milling machine base plate 510 to the worktable 150. For example... Figure 21 As shown, the worktable 150 has several tool attachment points 164 for attaching the milling machine base 510 to the worktable 150. The milling machine base 510 has multiple milling machine base support legs 508 that form a cage surrounding the milling machine drill bit 512. The milling machine 500 also has a power cord 506 and an on / off switch 504. The drill 100 can be implemented as a self-contained portable unit including an onboard power supply (such as battery power).

[0240] The intelligent unit or monitor 570 may have an input cable 574 with a cable termination or socket 576. If the device is an intelligent unit, the CPU, software, and memory will be on the device itself. If the device 570 is merely a monitor, the cable 574 and socket 576 will be connected to the CPU unit.

[0241] like Figure 14-19 As shown, system 100 may include a table motor 210 and a pivot motor 220. The table motor 210 controls the movement of the table 150. The pivot motor 220 controls the movement of a pivot arm 156, which pulls or pushes the table 150 to convert the rotational motion of motors 210 and 220 into relative linear motion. The table motor 210 and the pivot motor 220 each have their own motor covers 212 and 222, respectively.

[0242] Motors 210 and 220 can be controlled by a table motor driver 253 and a pivot motor driver 254 connected to a printed circuit board 250 and a microcontroller board 252. The microcontroller 252 processes low-level instructions from a smart device or CPU unit (i.e., a laptop computer). These instructions are to move motors 210 and 220 to the set positions (i.e., positions 150 and 125) in the correct step command to drive the motors to those positions. The orientation of the motors is tracked by returning the motors to the zero position once and then tracking all subsequent steps taken. Alternatively, the system can use a rotary encoder to track the state of the motor shaft orientation. Motors 210 and 220 and motor drivers 253 and 254 are powered by connecting a power plug socket 255 to a power source.

[0243] like Figure 15-16 As shown, the rear of the drilling rig 100 includes a camera support 190. The camera support 190 may be one or more support members that are connected to the upper worktable housing 130 and terminate at the top of the drilling rig 100 where the camera 300 is mounted. The camera 300 and lens 304 are positioned in a relatively downward position to capture images of the material being processed and its surrounding area.

[0244] Eccentric wheels can be used to convert the rotary motion of a motor into linear motion. An eccentric wheel is a disc that rotates around an eccentric shaft. As the shaft rotates, they produce linear motion in collars wound around the eccentric disc. Eccentric wheels maintain the same low backlash accuracy as a precision linear table, while being less expensive. A 1 / 2” linear displacement range is well within the capabilities of eccentric wheels. The tool may include two eccentric wheels mounted on a frame and connected to a table that can slide on its base. The eccentric wheels can be rotated by a stepper motor, and by rotating them, the table can be moved within the frame. Various eccentric wheel sizes and shapes can be varied to provide greater or lesser relative movement of the tool 699 relative to the workspace.

[0245] To constrain the worktable, one eccentric wheel is directly connected to the worktable via ball bearing coupling, while the other eccentric wheel is connected via coupling and hinge. This linkage design results in a non-linear relationship between the orientation of the eccentric wheels and the position of the worktable. Near the center of the range, moderate rotation of the eccentric wheels produces moderate movement of the worktable. In contrast, near the edges of the range, much larger rotation is required to move the worktable by a fixed amount. In some examples, the worktable displacement is limited to approximately 95% of the maximum range to avoid positions with extreme non-linearity. This linkage design also allows for reverse drive, as forces acting on the tool can rotate the cam away from its target position. However, this disclosure utilizes a sufficiently powered motor with enough power to prevent reverse drive even in the presence of significant forces.

[0246] like Figure 21 As shown, the upper table housing 130 can be a single-piece unit, in which spacers 131, 133, and 135 are machined or formed. Spacers 131, 133, and 135 provide the space required for movement of the table 150 and the pivot arm 156. The front spacer 131, side spacers 133, and rear spacer 135 do not need to be formed as a single unit. Instead, the front spacer 131, side spacers 133, and rear spacer 135 can be separate pieces attached to the upper table housing 130. The upper table housing 130 also accommodates a plurality of upper table pads 137. The upper table pads 137 allow the table stabilizing arm 152 to move along the pads 137 with minimal friction.

[0247] The worktable 150 is ideally made of a lightweight yet durable and robust material, such as aluminum or some other alloy. The worktable 150 is likely machined to include one or more stabilizer arms 152, a worktable eccentric arm member 154, a tool attachment point 168, and an opening 160 through which a tool extends through the worktable 150. Furthermore, the pivot arm 156 is likely machined from the same alloy or material as the worktable 150.

[0248] During operation, the table motor 210 moves in response to rotation of the table motor shaft 184. An eccentric cam member 174 is attached to the table motor shaft 184. As the table motor shaft 184 rotates, the eccentric cam 174 rotates, and the cam is designed such that the table 150 moves around the table arm member 154 connected to and surrounding the cam 174. A bearing ring may be used between the cam 174 and the table arm member 154.

[0249] Additionally, when the pivot motor 220 moves, the pivot motor shaft 186 rotates. A pivot eccentric cam member 176 is attached to the pivot motor shaft 186. As the pivot motor shaft 186 rotates, the pivot eccentric cam 176 rotates, and the cam is designed such that the pivot arm member 154, connected to and surrounding the cam 176, moves the pivot arm 156 back and forth, causing the table 150 to move relative to the pivot arm 156. A bearing ring can be used between the cam 176 and the pivot arm 156.

[0250] As the worktable 150 and pivot arm 154 move, the worktable stabilizing arm 152 moves along the upper worktable slide and the lower worktable slide 151 (e.g., as in...). Figure 13(In the middle) to stabilize the worktable 150 during movement. Furthermore, the worktable eccentric wheel 174 and the pivot eccentric wheel 176 may include bosses. The bosses provide additional material for the eccentric wheels 174, 176 to accommodate fixing screws that clamp onto the worktable motor shaft 184 or the pivot motor shaft 186, thereby securely attaching them to the respective eccentric wheels 174, 176. Figure 21 The pivot eccentric boss 187 can be seen in the figure. Since the worktable 150 and the pivot arm 156 operate on different planes, the worktable eccentric boss is flipped relative to the pivot boss 187, and therefore the worktable eccentric boss is not shown in the figure.

[0251] Figure 22 A system for guiding a tool is described. Manufacturing or production operations may include working on or with a piece of material having at least one plane, such as cutting a shape from a piece of plywood. However, determining the location of the edges of the planes can be challenging for tools; the edges of the planes may be rectangular, as in plywood, or smooth contours, such as the edges of a 2D template. The systems, methods, and apparatus of this solution relate to systems for detecting the shape and / or location of edges.

[0252] System 2200 may be configured with one or more technologies to guide the working component or drill bit of the tool. For example, the tool may include a probe and be configured with lateral probing technology that measures the surface of a material or workpiece, or establishes reference points on or relative to the workpiece. The tool may probe one or more points of the workpiece profile to digitize a template. The tool may probe one or more points of the profile to scan the edges of the workpiece material before and after flipping to align a scheme for double-sided machining. The tool may probe one or more points of the profile to generate a mesh overlay.

[0253] In some embodiments, the system may include a handheld tool coupled to a digital processor. The handheld tool may include a physical element with known or approximately known geometry, such as a probe. In addition to serving as a probe, the probe may also be part of a tool used for other capabilities besides detection, such as a drill bit. Using one or more sensors, the system can determine and store the 3D position or location of the probe in any coordinate system. The system can determine the position by detecting the position of the tool frame and using an offset from the tool frame to the probe, or the system can directly detect the position.

[0254] System 2200 may include one or more components or functions of system or tool 100, 680, 600, 800, 801, 1000, or 2800. System 2200 may be integrated with or included in one or more components or elements of system or tool 100, 680, 600, 800, 801, 1000, or 2800. System 2200 may include Figure 1 -9 and 11A-11B systems or devices have one or more functions or components. For example, the system may include tool 1000 and a base 18 or pad 22 coupled to tool 1000. System 2200 may include one or more processors (e.g., CPU 683), computing devices (e.g., 600), or memories (e.g., memory 687) designed and configured to facilitate the guidance of the tool. System 2200 may include interface 2205. Interface 2205 may include a touch interface, button, toggle switch, motion interface, or graphical user interface. Interface 2205 may include a dynamic interface 2205 manipulated by one or more processors of system 2200. Interface 2205 may include input / output interfaces such as a touch screen, keyboard, mouse, or buttons.

[0255] System 2200 can receive instructions or directives via interface 2205. Instructions may include commands to initiate or continue a probing or mapping operation. For example, a command may be to map a material or workpiece. A user can input instructions via interface 2205. Interface 2205 can receive various instructions or directives. For example, the interface may receive a command indicating that the probe is in contact with the edge of the material. Interface 2205 may receive commands or directives to lower or raise the probe. Interface 2205 may receive commands to initiate, continue, or terminate the mapping of material. In response to receiving a command, interface 2205 may provide or transmit commands to motor 19 (e.g., via one or more processors or computing devices). For example, a computing device may receive a command via interface 2205 and, in response to the command, may instruct motor 19 to raise or lower the probe (e.g., tool tip 24).

[0256] In some cases, interface 2205 can receive instructions or indications for the default or initial depth or length of the probe. For example, the user can input the probe length as 0.25 inches, 0.5 inches, 0.75 inches, 1 inch, or another length in another unit. After probe 2215 is lowered, the user can input the amount by which probe 2215 extends beyond the base or beyond the material surface.

[0257] System 2200 may include motor 19. Motor 19 may include one or more components or functions of the motor 19 depicted in system 1000. Motor 19 may control the movement of probe 2215 to raise or lower probe 2215 (e.g., a working member, drill bit, or other protrusion) along an axis. Motor 19 may include one or more mechanical elements (e.g., gears, springs, coils, magnetic components, chains, pulleys, or levers) to raise and lower probe 2215. Motor 19 may move the probe along a z-axis orthogonal to or perpendicular to a plane of the tool base (such as base plate 7 or worktable 690).

[0258] System 2200 may include one or more probes 2215. Probe 2215 may include a protrusion, a working member, or a tool tip, such as tool tip 24. Probe 2215 may be formed of any material, such as metal, aluminum, alloy, steel, iron, plastic, fabric, or paper. In some embodiments, probe 2215 may include a laser or beam. Probe 2215 may have any shape, geometry, or dimension that facilitates probing of material to generate a profile, map, or determine location. For example, probe 2215 may be cylindrical, rectangular, flat, narrow, or wide. Probe 2215 may have a radius or length, such as a radius of 1 / 8, 1 / 4 inch, or 1 / 2 inch. Probing information including shape, radius, and length may be stored in storage device 2235.

[0259] System 2200 may include one or more sensors 2210. The one or more sensors 2210 may include a camera, such as camera 682, or other sensors 22 or 23. Sensor 2210 may include a force sensor, proximity sensor, touch sensor, or motion sensor. Sensor 2220 may include an IMU to detect orientation.

[0260] Sensor 2220 can acquire images of a material or workpiece. Sensor 2220 can acquire images continuously or in response to an indication or instruction. Sensor 2220 can receive, for example, an indication that a probe is in contact with the edge of the material via interface 2205. In response to this indication, sensor 2220 can acquire images or capture other data about the position of the material or probe 2215 or tool relative to the material.

[0261] In some embodiments, sensor 2220 can automatically determine when probe 2215 contacts the edge of the material. For example, sensor 2220 can detect a force or pulse in response to the probe pushing against the edge of the material. In response to the detection of a force, one or more sensors or cameras can capture images or scan the surface of the material.

[0262] System 2200 may include map generator component 2225. Map generator component 2225 may include or be executed by a computing device (such as computing device 600). Map generator component 2225 may determine the position of probe 2215 relative to the material based on the contact between probe 2215 and the edge of the material.

[0263] In some cases, system 2200 can acquire or identify three-dimensional (3D) data to determine location. 3D location data may include X, Y, and Z coordinates. System 2200 can determine the XY coordinates using, for example, markings on a material surface. System 2200 can acquire Z-axis data using the depth of the probe. System 2200 can determine information about the material edge using accumulated 3D location data and the known geometry of probe 2215.

[0264] Map generator component 2225 can be obtained and generated as follows: Figure 24 The map or outline shown. Figure 24 This is a diagram illustrating edge detection according to an embodiment. For example, the system can identify or determine the geometry of probe 2215 as cylindrical. A user can move a handheld tool (e.g., tool 1000 integrated with system 2200) such that probe 2215 contacts the edge of material 2405 at points. For example, probe 2215 can contact the edge of the material at contact points 2410, 2415, and 2420. The user can repeatedly move the handheld tool to contact edge points 2410, 2415, and 2420. In some cases, the user can continuously move the handheld tool to edge points 2410, 2415, and 2420 or other edge contact points. System 2200 can combine the determined positions 2410, 2415, and 2420 to generate a digital or electronic map or profile of the material, and store the electronic map or profile in storage device 2235.

[0265] System 2200 can determine where edge points 2410, 2415, or 2420 are located on material 2405. System 2200 can determine that edge points 2410 and 2415 are located on the edges of the rectangular material 2405. For example, a user can input indications that edge points 2410 and 2415 are located on the edges of material 2405. The user can also input that point 2420 is located on an adjacent edge of material 2405.

[0266] System 2205 can also determine the orientation of the tool. For example, system 2205 may determine or be configured with information indicating that the tool has an orientation relative to a plane (e.g., the tool's base plate, stage, or frame) such that the principal axis of the cylindrical probe 2215 is perpendicular to the plane. System 2200 may be configured with this information because the handheld tool may have a flat surface on which it rests on a flat material plane implementing the orientation. Based on this data, the system can determine the 3D plane containing the rectangular probe edges 2410, 2415, or 2420. The system can determine the 3D plane using calculations involving the probe geometry, for example, by offsetting the probe center at the detection location by the radius of the cylindrical probe.

[0267] System 2200 can generate a map or profile of a material or template by sliding probe 2215 along a continuous edge. System 2200 can generate a map of a material or template that is at least partially curved. System 2200 can generate a map that includes the entire profile of the template or material detected by probe 2215.

[0268] Figure 25 This is a diagram illustrating edge detection according to an embodiment. Figure 25 The illustration shows a material, workpiece, or template 2505. Material 2505 may have an edge 2510. A probe 2215 may contact the edge 2510 of the material at a contact point 2515. When probe 2215 contacts edge point 2515, the center of the probe, for example, a cylindrical probe, may be located on path 2520. Probe 2215 may move along path 2520. As probe 2215 moves along path 2520, system 2200 may detect or continuously detect the position of probe 2215 corresponding to path 2520. System 2200 may continuously (e.g., based on a sampling rate of at least 1 Hz, 2 Hz, 5 Hz, 10 Hz, 25 Hz, 50 Hz, or 100 Hz) detect the position of probe 2215 as it moves along path 2515 adjacent to edge 2510. Path 2520 may offset the radius of probe 2215 from the edge of material 2510. System 2200 can correct this offset to determine the shape of material 2505 to correspond to edge 2510.

[0269] System 2200 can receive (e.g., via interface 2205) an indication of whether the detected edge is an inner hole or an outer contour in the geometry, in order to offset the center of the detected probe geometry in the correct direction to determine the probe edge geometry. Figure 26 This is a diagram illustrating edge detection according to an embodiment. Figure 26The illustration shows template 2605. Template 2605 can be formed from any material or marking, such as stickers, paper, metal, or wood. Template 2605 may include a cut 2610. Cut 2610 may be located inside template 2605. Cut 2610 may include a continuous edge. The system can determine the position of probe 2215 at point 2620. Probe 2215 can move along cut 2610, and system 2200 can determine the position of probe 2215 along dashed line 2615. If probe 2215 has a cylindrical shape, path 2615 may correspond to the center point of probe offset from the radius of probe. As probe 2215 moves along path 2615 adjacent to edge 2610, system 2200 can continuously detect the position of probe 2215 (e.g., based on sampling rates of at least 1 Hz, 2 Hz, 5 Hz, 10 Hz, 25 Hz, 50 Hz, or 100 Hz). Using the detected probe 2215 along the location of path 2615, system 2200 can generate edge data, a map or contour of cut 2610. System 2200 can store the edge data, map or contour in storage device 2235.

[0270] The system can use defined properties associated with the edges (e.g., 2510, 2520, 2610, or 2615) of a material (e.g., 2605 or 2505) to calculate derived values. System 2200 can use this edge data to form a mesh to determine a Cartesian coordinate system with an origin and X and Y axes registered to the material surface. System 2200 can use this mesh to align a digital design with the edges of the material, or to "snap" a digital design to a particular orientation, or to "snap" a newly created shape to the mesh. System 2200 can overlay the mesh onto the surface of the material, or overlay the mesh onto the digital representation of the material. System 2200 can snap a shape or a newly created shape or design to the mesh. System 2200 can snap input points to generate a shape, such as two opposite corners of a rectangle to be drawn. The mesh can be used while creating shapes on System 2200 or Tool 1000. The position of the active snap points relative to the established origin can be displayed on the display of Tool 1000. The mesh spacing or other dimensions can be adjusted.

[0271] Maps created or captured on system 2200 or tool 1000 (e.g., via probe) can be stored in storage devices or other memories and later retrieved or transmitted (e.g., via network or wired communication) to other computing devices or servers.

[0272] The tool 1000 or system 2200 can create shapes that can be used to draw other types of shapes, such as polygons or circles. The system 2200 can run scripts to programmatically or vector-basedly generate shapes based on parameter inputs (e.g., number of sides, dimensions, angles, or length).

[0273] System 2200 can use edge data to create new digital designs that can later be reproduced or followed by digital manufacturing equipment. For example, a user can provide a 2D wooden template, such as template 2605. Probe 2215 can follow the edges of template 2605 to generate a digital design. Then, when creating an object containing that shape, system 2200 can use the digital design instead of the physical template 2605.

[0274] System 2200 can determine edge data for a piece of material in multiple scenarios and use the relationship between two pieces of material to determine how that piece of material should move. For example, digital cutting can begin on a piece of material that may later move before the digital cutting is completed. System 2200 can then update the digital specifications of the cutting to take into account the action required to complete the cutting.

[0275] System 2200 can capture or obtain edge data from multiple sides of a material. For example, a flat piece of material can be flipped. System 2200 can obtain or capture edge data from a first side and a second side of the material, aligning the second edge capture with the first edge capture. Thus, system 2200 can align digital cuts to perform double-sided processing. In some cases, system 2200 can obtain edge data for each side via lateral probing techniques, while in other cases, system 2200 can obtain at least some edge data from other aspects via other means.

[0276] In some embodiments, system 2200 may be configured with visual alignment technology. For example, system 2200 may create a top-down image of at least a portion of a material. System 2200 may create this top-down image while performing position tracking, image capture, mesh generation, or using another technology. If the material has markings or other drawings (e.g., if a user draws where they want to cut the material on a piece of material), the drawing will appear in the top-down image, which may be displayed on the system 2200 or the tool 1000's display or interface (e.g., display screen 572). System 2200 may be configured with on-device shape creation tools or predetermined templates to allow the user to perform cuts at desired locations.

[0277] For example, a user can place an object on the surface of a material. The user can trace or outline the object using markers, a pen, or a pencil. System 2200 can scan the surface of the material even after the object has been removed. The scan may include the object's trajectory or outline, but not the object itself. System 2200 may include a pen tool on the device (e.g., an interface 2205 that the user can use to digitally or electronically trace the outline during the scan). Therefore, system 2200 can create a digital equivalent of the same shape, which system 2220 can then use to guide a workpiece to cut from the material.

[0278] System 2200 can be configured to perform various operations based on a drawing that appears on the surface of a material. System 2200 can use a top-down image as a reference to perform these operations to create digital profiles or trajectories on system 2200 or tool 1000 itself.

[0279] In some cases, system 2200 can use computer vision for automatic detection and digitization. For example, system 2200 can scan the surface of a material to create a top-down image or scan while the object is still on the material. System 2200 can use computer vision techniques to automatically identify objects. System 2200 can use computational imaging or vision techniques to automatically generate the outline or trajectory of an object. System 2200 can display the automatically created trajectory on a display screen. System 2200 can receive instructions from the user via interface 2205 to perform operations on part or all of the outline, such as cutting along one or more lines or paths of the automatically created trajectory or outline of the object.

[0280] Figure 23 A flowchart for a guiding tool according to an embodiment is depicted. Method 2300 can be performed by one or more components of system 2200 or tool 1000. The method may include a tool at 2305 receiving instructions for mapping material. The tool may receive instructions from a user or remote device via an interface. The tool may receive additional information about parameters of the tool, material, or probe used for mapping material, such as geometry or dimensional information.

[0281] At 2310, the tool can instruct the motor to lower the probe. The tool can lower the probe in response to a map generation instruction. The tool can lower the probe before receiving the map generation instruction. The tool can lower the probe such that at least a portion of the probe extends beyond the tool's base. The probe can be lowered such that it extends beyond the surface of the material on which the tool base rests. The probe can be lowered such that it is adjacent to or close to the edge of the material to be mapped.

[0282] At 2315, the tool can identify edge contact between the probe and the material. The tool may include one or more sensors, such as force or pressure sensors, to detect this edge contact. The tool may receive, via an interface, an indication that the probe is in edge contact with the material, or that the probe is otherwise located at a point.

[0283] At 2320, the tool can determine the probe's position. This tool can determine the position in response to or based on identifying contact between the probe and a material edge. The tool can determine the position relative to a material surface or edge. The tool can determine the position using an image or scan of the material surface in response to an indication of probe contact with a material edge. The tool can use the tool's position information or orientation to determine the probe's 3D position. For example, the sensor may include an IMU.

[0284] The tool can determine the probe's position relative to the material based on the probe's radius. The tool can be programmed using the probe's radius, or it can receive the probe's radius or other geometric information via an interface. The tool can determine multiple probe positions to identify multiple contact points along the material's edge and combine this edge data (e.g., two-dimensional or three-dimensional position data) to generate a map or profile of the material.

[0285] System 2200 can be configured to generate different types of toolpaths or cutting paths. System 2200 may include a spiral path generator component 2230. For example, the cutting path may be a straight cutting path, or it may refer to the movement of the cutting tip or working member of tool 1000. In some cases, system 2200 or tool 1000 may automatically generate spiral toolpaths based on a desired edge shape or cutting shape. System 2200 or tool 1000 may generate spiral toolpaths in real time, where real time can refer to while tool 1000 is cutting material or immediately (e.g., within 0.5 seconds, 1 second, 2 seconds, 5 seconds, 10 seconds, or 30 seconds).

[0286] When cutting a hole from a piece of material, system 2200 can drive the cutting drill bit in an approximately helical toolpath. The helical toolpath, in contrast to a circle repeated at multiple depths, provides continuous motion without sudden acceleration, resulting in better edge quality and improved performance from the drill bit. The helical toolpath facilitates the cutting of circular holes or other types of shapes in material.

[0287] System 2200 or tool 1000 can receive and process digital designs that identify or define what is to be cut. The digital design may include, for example, computer-aided design (CAD) files. For instance, the digital design may specify a circular hole with a diameter of 0.3 inches and a depth of 0.5 inches into the material. System 2200, tool 1000, or helical path generator component 2230 is configured with computer-aided manufacturing (CAM) technology to generate toolpaths based on the digital design. By configuring system 2200 or tool 1000 to use CAM technology, system 2200 or 1000 can generate helical toolpaths during cutting.

[0288] The spiral path generator component 2230 can generate a spiral toolpath that begins at an offset between the bit radius and the desired hole circumference and spirals downward to the target depth in a single continuous motion. Therefore, the digital handheld tool 1000 integrated with system 2200 can generate and implement spiral toolpaths on the same device during operation or in real time. Real time can refer to a point in time after the user provides an instruction or command to begin cutting the material. For example, real time can be in response to the user moving the tool near the target circular hole and then providing a command to begin cutting via interface 2205. In response to receiving the command to begin cutting, the spiral path generator component 2230 can generate a spiral starting from a point on the target circle closest to the tool's current position.

[0289] Figure 27 This is a diagram illustrating a helical tool path generated by system 2200 according to an embodiment. System 2200 can cut a hole 2702 using drill bit 2701. System 2200 can generate a helical tool path in which drill bit 2701 (e.g., via motor 19) moves to the nearest portion 2703 of hole 2702, then is driven downward to the surface of material 2700, then downward into helix 2704, then moves back to the center of hole 2702, and then retracts 2705. This illustration of a helical tool path is not limiting, as system 2200 can generate other types of helical tool paths in real time or during operation.

[0290] Figures 28A-28D This is a diagram illustrating the tool according to an embodiment. Table 1 lists... Figures 28A-28D The components of system 2800 shown. In some embodiments, system 100, system 680, system 1000, or system 2200 may include Figures 28A-28DOne or more components or functions are shown. System 2800 may include one or more components or functions of system 100, system 680, system 1000, or system 2200. In some embodiments, system 2800 may include one or more communication interfaces to allow communication with other computer systems via a network (e.g., sending and receiving manufacturing data (e.g., information about cutting on a work surface), sending and receiving digital designs or design schemes).

[0291] label describe 2801 Base housing 2802 Touchscreen display 2803 Structural shell 2804 Electronic compartment cover 2805 Motor cover 2806 Finger protectors and vacuum shields 2807 Vacuum port 2808 left handle 2809 Left handle button 2810 right handle 2811 Right handle button 2812 Lift handle 2813 USB port 2814 Removable chip tray 2815 LED workpiece lighting 2816 camera 2817 Chip cleaning area 2818 spindle motor 2819 magnetic latch 2820 carriage and spindle motor clamp 2821 Tool aperture

[0292] Table 1: Figures 28A-28D List of components and labels for the tools shown.

[0293] In some embodiments, a linear or torsion spring may be connected to a component of the z-axis positioning table (e.g., clamp 2820) to prevent, slow down, or reverse the descent movement of the z-axis table (supporting the weight of the spindle motor 2818) when power to the z-axis motor is off. In some embodiments, a torsion spring may be coupled to the z-axis motor shaft to apply mechanical torque to the motor shaft even when the motor is not powered. In some embodiments, the torsion spring coupled to the z-axis motor shaft may be pre-tensioned to keep the applied mechanical torque within a fixed range of the z-axis's travel range.

[0294] Figure 28A The illustration depicts a milling machine comprising components including an electromechanical worktable that moves a fixture 2820 along the X, Y, and Z directions under automatic control. A spindle motor 2818 is secured to a carriage by circumferential clamping force within the fixture 2820. This arrangement allows the fixture to accommodate manufacturing variations in the spindle motor diameter. The milling machine may include finger guards and a dust cover 2806 that can be held by a magnetic latch 2819; handles 2808 and 2810 with control buttons 2809 and 2811 allowing the user to interact with code running on one or more processors; a vacuum port 2807 for interfacing with a dust removal hose; a touchscreen display 2802 allowing the user to interact with code running on one or more processors; a structural tower 2803 also housing electronics; an electronics cover 2804; a protective shield 2805 for protecting internal components, including the motor; and a base housing 2801. The dust cover 2806 and the vacuum port 2807 can be shaped to improve the capture of cutting debris and to direct the cutting debris from the tool aperture 2821 that generates cutting debris from the cutting tool to the vacuum port 2807.

[0295] In some embodiments, one or both handles of system 2800 (e.g., 2808, 2810) may include one or more of the following: control buttons (e.g., 2809, 2811), scroll wheels, multi-level buttons, indicator LEDs, D-pads, joysticks, touchpads, grip sensors, triggers, biometric (e.g., fingerprint, iris, facial recognition) sensors, or other input devices. For example, the right handle may have two control buttons and three indicator LEDs, and the left handle may have a touchpad and a scroll wheel. In some embodiments, the control buttons may be programmed based on the current state of system 2800 (e.g., design selection mode, design registration mode, cutting mode) to perform one or more of the following: opening the working component (e.g., turning on the spindle motor 2818 if system 2800 is in cutting mode, or lowering the drawing instrument to contact the work surface if system 2800 is a drawing tool), closing the working component (e.g., turning off the spindle motor 2818), toggling the opening and closing of the working component's working component, embedding the working component into the work surface, or retracting the working component from the work surface. In some embodiments, the roller may be programmed, based on the current state of system 2800, to perform one or more of the following: change the rate of motion of the working component (e.g., change the speed of the spindle motor 2818 in system 2800), change the content displayed on the display connected to system 2800 (e.g., change the magnification of the view displayed on the touchscreen display 2802 in system 2800, change the location of the displayed data in the ARD or VRD connected to system 2800), scroll the menu in the UI displayed on the display connected to system 2800 (e.g., if system 2800 is in design selection mode), or change the z-position of the working component. In some embodiments, the indicator LED may indicate one or more of the following: the power status of the working component (e.g., red indicates that the spindle motor 2818 is on, and green indicates that the spindle motor 2818 is off), the rate of motion of the working component (e.g., a change from green to yellow and then to red indicates that the speed of the spindle motor 2818 changes from off to low speed and then to high speed), or the status of the working component (e.g., green indicates retraction from the working surface, and red indicates retraction into the working surface). In some embodiments, the D-pad, joystick, or touchpad may be programmed, based on the current state of the system 2800, to perform one or more of the following: navigating within a UI displayed on a monitor connected to the system 2800, moving a working component within the adjustment range of the system 2800, or extending or retracting a working component from a working surface. In some embodiments, the grip sensor may detect a pattern of gripping the handle or the pressure applied by the user gripping the handle. In some embodiments, the grip sensor may use one or more optical, force, capacitance, resistance, pressure, or any other sensing mechanism to detect the user's grip.In some embodiments, a pressable trigger input device on the handle can be used to control the rate of motion of the working component (e.g., controlling the speed of the spindle motor 2818). In some embodiments, biometric sensors (e.g., on the handle, on the tool body) can restrict the use of or limit the functionality available to one or more users (e.g., users registered on the tool, users registered on a computer system that manages user access to the tool).

[0296] In some embodiments, system 2800 may be programmed to confirm that each of the user's hands is gripping two grip sensors (one on each handle) before enabling the tool's functionality (e.g., before turning on the spindle motor 2818). In some embodiments, the handles may be differently shaped for use on different work surfaces (e.g., one handle design when system 2800 is used to work on a horizontal surface, and another different handle design when system 2800 is used to work on a vertical surface).

[0297] In some embodiments, system 2800 may be designed to allow interchangeable handles to enable additional or different functions. In some embodiments, system 2800 may have electrical (e.g., using connectors on a PCB) and mechanical interfaces designed to connect to different handles. In some embodiments, system 2800 may communicate with the handles using I2C, USB, Bluetooth, or other communication protocols. In some embodiments, the handles may be mechanically attached to the tool using mounting holes in the base housing 2801. In some embodiments, the handles may be hot-swappable (e.g., able to connect to or disconnect from system 2800 while system 2800 is powered on). In some embodiments, one or more processors may execute instructions stored in one or more memories to cause system 2800 to enable or disable functions associated with one or more input devices on the handle, or to cause system 2800 to enable or disable functions by detecting capabilities included on the connected handle. In some embodiments, one or more processors on system 2800 may load software onto an additional processor located in the interchangeable handle to change or upgrade the functionality of the handle.

[0298] In some embodiments, the finger guard and dust cover 2806 can mechanically trigger one or more switches (e.g., Hall effect switches, reed switches) to detect the removal or improper positioning of the finger guard and dust cover 2806. In some embodiments, the state of one or more switches detects the positioning of the finger guard and dust cover 2806. In some embodiments, the state of one or more switches can be used to enable or disable one or more functions of the system 2800. In some embodiments, the finger guard and dust cover 2806 can cause one or more switches to trip to indicate a new function associated with the finger guard and dust cover 2806 (e.g., fan, camera, vent).

[0299] Figure 28B The illustration shows a tool having a lifting handle 2812; a USB port 2813 for interfacing with one or more processors; and a removable chip tray 2814 (e.g., [missing information]) that allows the user to easily remove any cutting debris accumulated in the moving parts of the stage in the chip gap area 2817. Figure 28D ).

[0300] Figure 28C Additional elements of the tool are shown, including an LED array 2815 for illuminating a workpiece, and a camera 2816 for normal operation of the device. In some embodiments, the LED array 2815 may illuminate the workpiece using visible light (e.g., white light). In some embodiments, the LED array 2815 may illuminate the workpiece using invisible wavelengths (e.g., UV, IR).

[0301] Figure 28D Chip gap region 2817 is shown, in which chip tray 2814 has been removed.

[0302] In some embodiments, a triac (three-terminal bidirectional thyristor switch) in the spindle electronics can be used with phase angle control to control the speed of the spindle motor 2818 (e.g., a brushed AC / DC universal motor). Specifically, in some embodiments, the triac switches turn on and off the AC power supplied to the spindle windings based on a specific timing sequence. The triac switching element can “pulse” the AC power in a pattern imperceptible to humans. The pulse pattern used to rotate the spindle motor 2818 at startup can be detected by one or more processors in system 2800, using a circuit system to measure spindle current consumption. In some embodiments, the rotor and stator windings of the spindle motor are configured based on the expected AC voltage supplied to the motor to achieve desired rated power and speed. In some embodiments, the winding configuration differs from that of a spindle motor designed to drive at approximately 230V AC, compared to a spindle motor designed to drive at approximately 120V AC. In some embodiments, the detected pulse pattern provides an indication of the rotor and stator windings of the spindle motor. In some embodiments, using indicated winding information and a measured AC wall voltage supplied to system 2800, one or more processors in system 2800 can determine whether the motor voltage design specifications of spindle motor 2818 match the AC wall voltage supplied to spindle motor 2818 (measured using a voltage measurement circuitry system). In some embodiments, if the voltage design specifications of spindle motor 2818 do not match the AC wall voltage supplied to spindle motor 2818, one or more processors in system 2800 can trigger one or more actions. In some embodiments, triggering actions may include: shutting off power to spindle motor 2818, causing a display (e.g., touchscreen display 2802) to indicate a notification to a user, or changing the speed of spindle motor 2818.

[0303] In some embodiments, the system (e.g., system 2800) may display information about augmented reality displays (“ARDs”, including transmissive mixed reality displays, such as augmented reality head-up displays (e.g., Google Glass, mixed reality head-up displays (e.g., Microsoft HoloLens)) or virtual reality displays (“VRDs”, such as virtual reality head-up displays (e.g., Vive, Facebook Oculus, Sony PlayStationVR)) coupled to one or more processors in the system. In some embodiments, the ARD may be used to display a top-down view of an area surrounding a working component. In some embodiments, the ARD may indicate the working component adjustment range. In some embodiments, the ARD may indicate a portion of a working component path or a portion of a design. In some embodiments, the ARD may indicate the entire working component path or the entire design. In some embodiments, the ARD may use an “X”, a circle, a dot, an icon, or any other signaling indication to indicate the current position of the working component. In some embodiments, the current position of the working component may be indicated relative to the working component adjustment range, the working component path, or the design scheme. In some embodiments, system-related data (e.g., the range of adjustment of the working component, a portion of the working component path, a portion of the design, an indication of the current position of the working component) may be fixed or “fixed” at a location relative to the system’s position when the wearer of the ARD moves the ARD (e.g., moves his or her head with the head-mounted ARD). In some embodiments, system-related data may be fixed or “fixed” to the working surface when the wearer of the ARD moves the ARD (e.g., moves his or her head with the head-mounted ARD). In some embodiments, system-related data may move relative to the system’s position when the wearer of the ARD moves his or her head. In some embodiments, VRD is used instead of ARD in the above description.

[0304] Instead of using a computer to create design schemes, some users may want to take measurements on a work surface and create templates that define the design schemes. In some embodiments, system 680 can utilize user-generated templates on the work surface to define design schemes. First, as Figure 30A As shown in Figure -D, a user can begin by laying a film 3020 on top of a working surface 3010. In some embodiments, the film may have an adhesive backing and can adhere to the working surface. The user can take measurements on the working surface 3010 and cut within the film 3020 to define a template for a design scheme. For example, the user can cut a square shape in the film 3020, remove internal portions of the film 3020 to form a square shape 3030 within the film 3020, and create a template for, for example... Figure 30BThe template shown is for a design scheme. If the user wants to change the template, for example, if the template should be rectangular instead of square, the user can add an additional film on top and modify the template, such as... Figure 30C As shown. In this example, the user adds a film 3040 to cover... Figure 30B Part of the template 3030 formed in the middle. Figure 30D The final template 3050 is shown after the user makes additional cuts in film 3040 to form a rectangular template for the design scheme. Figure 30D In the diagram, edges A, B, and C of film 3020 and edges D, E, and F of film 3040 define the shape of the final template 3050. The areas where films (3020 and 3040) have been removed are marked as region 3060 (shown in white).

[0305] In some embodiments, a template for design schemes can be created after a map of the work surface has been created. In some embodiments, if the map is created using markers or marks on the work surface, the film may be partially transparent to allow system 680 to locate using the markers or marks after the film is applied to the work surface. If a map has already been created, one or more cameras are used to capture images of the work surface, including the film and the template. In some embodiments, based on the template (e.g., Figure 30D One or more edge analyses of the template (3050) in the image are captured to identify the desired path. In some embodiments, the edge analysis is based on the template (e.g., ... Figure 30D One or more edge analyses of the template 3050 in the template are used to capture images to identify design schemes. In some embodiments, a desired path for an adapter to hold the working member is determined based on the design scheme. In some embodiments, the desired path may be based in part on the physical geometry of the adapter holding the working member (e.g., based on the position of the working member relative to the adapter). In some embodiments, the desired path may be based in part on the physical dimensions of the working member (e.g., the width of the cutting drill bit). In some embodiments, the desired path may be based in part on input from the user, e.g., an input indicating that the user wants the center of the working member to be located on the edge of the template, or an input indicating that the user wants the edge of the working member to be located adjacent to the edge of the template, wherein the working member is in Figure 30D The input is in the internal white space 3060. In some embodiments, the desired path is registered or otherwise correlated with the map.

[0306] In some embodiments, a map of the work surface can be created after the user has created a template. In some embodiments, the user can add markings or labels (e.g., patterned strips, patches) to the work surface. In some embodiments, markings or labels (e.g., coded patterns) can be printed or included in a film. One or more cameras can be used to capture images of the work surface, including the template and any existing markings / labels. The captured images can be used to create a map of the work surface. The captured images can be used to determine the desired path for an adapter used to hold the workpiece. In some embodiments, the desired path is registered or otherwise correlated with the map.

[0307] In some embodiments, the film has been cut to a shape and size corresponding to a template. For example, a product manufacturer may provide a pre-cut film (e.g., a cut template) for installing its product (e.g., a recessed light in a ceiling or wall). In another example, a user installing the same product may typically commission a third party to create a film template based on the product dimensions. In some embodiments, the reflectivity, color, or pattern of the film may be selected to enhance the visibility or contrast relative to the workpiece surface or markings / marks on the workpiece surface. In some embodiments, the film may include a high-contrast, non-repeating pattern, such that the pattern can be used to create a map of the work surface. The position of the camera when the image was taken can then be determined using an image of a portion of the pattern by matching the pattern information in the image with the pattern information in the map. In some embodiments, the film may be made of one or more layers of material (e.g., vinyl resin, paper) and may include an adhesive backing. In some embodiments, the film may include a grid pattern with a grid spacing (e.g., 1 inch, 0.5 inch, 0.25 inch, 0.125 inch, 0.0625 inch) to allow a user to use the grid pattern to measure distances. In some embodiments, the grid pattern may use two or more line thicknesses (e.g., thicker lines for 1-inch markings and thinner lines for 0.125-inch markings).

[0308] Some users may want to simply place a printed design on a work surface to indicate that they expect to work on the design at that location using a system (e.g., system 680). In some embodiments, a camera on the system can scan the printed design to generate a design scheme based on the printed design. Alternatively, in some embodiments, a user can place a design mark with a pattern containing coded information (e.g., a barcode, 2D code, QR code) on the work surface to indicate the location of the design scheme on the work surface (e.g., relative to the location of the design mark included in the coded information) (e.g., using a design ID included in the coded information). In some embodiments, the system may also use the design mark as a marker for mapping or positioning. In some embodiments, a user can print out a sheet of paper with the design mark and the corresponding design to see where the design scheme will be located relative to the design mark and to view the design scheme referenced in the design mark. In some embodiments, a user can place a printed sheet of paper with the design mark and the design scheme on the work surface.

[0309] In some embodiments, a camera in the system (e.g., system 680) can capture images of design markings on a work surface. In some embodiments, a processor in the system can analyze the captured images to identify the design markings and decode the design marking pattern to determine a design ID and corresponding design location based on the position of the design markings on the work surface. In some embodiments, the processor in the system can analyze the captured images to identify the design markings and decode the design marking pattern to determine a design ID and corresponding design location based on the position of the printed design (if present) relative to the printed design markings. In some embodiments, the information encoded in the design markings may include location (and access information) from which the system can retrieve the design identified by the design ID (e.g., from memory in the system, from a web server with a given URL, from a server using provided credentials and a server address). In some embodiments, the design ID may use a naming format to define the design (e.g., the design ID "Circle_r8" corresponds to a circle with a radius of 8 inches in the design). In some embodiments, the system may generate a desired path for an adapter used to hold a working component based on the design ID or design.

[0310] In some embodiments, design markers can be used to configure a coordinate system used by a system (e.g., system 680) for mapping and positioning. In some embodiments, a user can place a design marker with a pattern containing coded information (e.g., a barcode, 2D code, QR code) at a given location on the operating system to inform the system user that they want to use the location of the design marker as the origin of the mapping and positioning coordinate system. The information encoded in the design marker will indicate that the design marker also specifies the location of the coordinate origin. In some embodiments, a user can place a design marker with a pattern containing coded information (e.g., a barcode, 2D code, QR code) at a given location on the operating system to inform the system user that they want to use a specific orientation of the coordinate axes for mapping and positioning. The information encoded in the design marker will indicate that the design marker also specifies the orientation of the coordinate axes.

[0311] The disclosed embodiments allow users the flexibility to work in physical space (e.g., together with or on a work surface) or in design space (e.g., working in a design environment using a design scheme (e.g., using drawing, CAD, or similar programs)). In some embodiments, system 2800 may include software code in memory that, when executed by one or more processors, allows users to work in a design environment on the system. In some embodiments, one or more processors in system 2800 may store logs to track system activity, wherein the logs and any reference data are stored in one or more memories in system 2800 or in one or more memories in a computer system other than system 2800. In some embodiments, the logs allow users to make corresponding changes in design space (e.g., the location of an edge corresponding to a cut on the work surface) using information generated in physical space (e.g., the location of a cut on the work surface) and vice versa. As used herein, “log” can refer to a record of data stored in any format (e.g., structured, unstructured, or a combination of structured and unstructured) for processing by a computer system. For example, a log can be a structured record that includes data corresponding to items (e.g., events, actions), stored in a given format and including information for each item. In another example, a log can be a collection of data corresponding to items stored in a computer system. In some embodiments, a log ID can be used to track log data for a given item.

[0312] In some embodiments, one or more processors may store data in a log based on system 2800 startup. In some embodiments, one or more processors may store data in a log based on scanning a work surface to generate a map. In some embodiments, the data recording map generation may have associated additional data (e.g., a list of markers (e.g., the location and orientation of a global list of markers on the work surface), an image showing the scanned area of ​​the work surface, the dimensions of the scanned area). In some embodiments, associated data may be stored in the log or stored separately (wherein the log includes references to the stored data). References may be names (e.g., map name, design scheme name), links (e.g., hyperlinks), paths (e.g., file system locations), etc. In some embodiments, references may identify the location of additional information (e.g., in local memory, on a local storage device, on a remote storage device).

[0313] In some embodiments, one or more processors in system 2800 may store data in a log based on registering a design scheme to a map, wherein the data includes references to additional information (e.g., the design scheme, location information specifying where the design scheme is placed relative to the map or work surface). In some embodiments, one or more processors may store data in the log based on path generation, the path generation being based on the design scheme, wherein the data includes references to additional information (e.g., path ID (if the design scheme includes multiple paths), the design scheme, the physical dimensions of the work component used to generate the path, user input specifying the location of the work component relative to the design scheme, the location of the path relative to the map, and the location of the path relative to the work surface).

[0314] In some embodiments, one or more processors in system 2800 may store data in a log based on work performed on a work surface (e.g., cutting, drawing, marking, probing) (e.g., path-based), wherein the data includes references to additional information (e.g., path ID (if the design scheme includes multiple paths), design scheme, cutting depth of the workpiece, offset between the workpiece and the adapter, operating parameters of the workpiece or adapter relative to the rig, map, or work surface (e.g., rotational speed, kinematic data (e.g., position, velocity, acceleration, or related data)), and parameters related to the motion of the rig (e.g., kinematic data relative to the map or work surface (e.g., position, velocity, acceleration, or related data), orientation of the rig relative to the map or work surface)). In some embodiments, the operating parameters of the workpiece or the parameters related to the motion of the rig are stored according to the time when the work is completed (e.g., when cutting is completed).

[0315] In some embodiments, one or more processors in system 2800 may use information in the log or data referenced by the log to update the system state (e.g., display an image of the work surface indicating that a registered design or cutting has been completed) or generate user-available UI elements (e.g., enabling the option to create a path if the log shows that a design has been registered to a map). In some embodiments, one or more processors in system 2800 may transmit data (e.g., portions of the log or data referenced by the log) to an external computer system (e.g., by transmitting data to a removable storage device, or by transmitting data via a communication interface operatively coupled to the processors in system 2800). In some embodiments, one or more processors in system 2800 may receive data (e.g., portions of the log or data referenced by the log) from a remote computer system (e.g., another tool).

[0316] Figure 31 A network connection diagram is shown for six computer systems (Tool1 3110, Tool2 3120, and Tool3 3130) interconnected via network 3170, and three computer systems (ComputerSystem1 3140, ComputerSystem2 3150, and ComputerSystem3 3160). In some embodiments, access to [the system] can be restricted based on one or more of user-level, system-level, or other (e.g., business entity-based) credentials (e.g., password-based access, hardware-based authentication). Figure 31Access to one or more tools and computer systems is shown. In some embodiments, a given tool (e.g., Tool1 3110) can communicate directly with one or more other systems (e.g., Tool2 3120, ComputerSystem3 3160) to transmit or receive data (e.g., a portion of a log, data referenced in the log, design schemes). In some embodiments, a first computer system (e.g., Tool1 3110) and a second computer system (e.g., Tool2 3120) can transmit or receive data through an intermediate computer system (e.g., ComputerSystem2 3150, Tool3 3130). In some embodiments, a given computer system (e.g., Tool1 3110) can receive first data from a first computer system (e.g., ComputerSystem1 3140, Tool2 3120) and send second data to a second computer system (e.g., ComputerSystem2 3150, Tool3 3130). In an exemplary embodiment, Tool1 3110, Tool2 3120, and ComputerSystem2 3150 can all store data on ComputerSystem1 3140. In this embodiment, based on the access policies implemented by ComputerSystem1 3140, Tool1 3110, and Tool2 3120, they can access their own data, data stored by other parties, and data stored on ComputerSystem1 3140 by ComputerSystem2 3150. However, ComputerSystem2 3150 may only access its own data and data stored on ComputerSystem1 3140 by Tool2 3120.

[0317] The storage of system activity allows for the tracking of design changes made during manufacturing. Specifically, changes made during manufacturing (e.g., to adapt to part assembly based on a manufacturing sample) can be stored in a log. The stored changes can be processed by one or more processors in system 2800, or by one or more processors in another computer system, to update the design based on the changes made during manufacturing to successfully manufacture the actual part. In some embodiments, one or more processors in system 2800 can store data in the log based on modifications to the original design to create a modified design. In some embodiments, one or more processors in system 2800 can store data in the log based on a modified path determined based on the modified design. In some embodiments, one or more processors in system 2800 can store data in the log based on an original path determined based on the original design. In some embodiments, one or more processors in system 2800 can store data in the log based on a modified original path created by modifying the original path. In some embodiments, system 2800 or another computer system may use stored information from the log to update a local or remote copy of the original design based on changes recorded to the original design, based on the modified path record data, or based on changes to the original path record.

[0318] In some instances, if a user wants to change or move the original path, the user of system 2800 can initiate the generation of a new path. In some embodiments, data associated with the recorded new path or the cutting of records based on the new path can be used by one or more processors in system 2800, or by one or more processors in another computer system, to update the design scheme corresponding to the original path. In some embodiments, the updated design scheme can replace the original design scheme. In some embodiments, the updated design scheme can be stored as a new design scheme. In some embodiments, data associated with the recorded new path or the cutting of records based on the new path can be used by one or more processors in system 2800, or by one or more processors in another computer system, to update the corresponding design scheme in the design environment (e.g., drawing, CAD, or similar programs). In some embodiments, the design environment can output data (e.g., logs or associated data related to changes made in the design environment, design schemes in one or more formats (e.g., using different design scheme formats based on tool manufacturer specifications)). In some embodiments, the output data from the design environment can be used by other computer systems. In some embodiments, the design scheme used by system 2800 includes data related to the design environment (e.g., design environment name, design environment version number).

[0319] In some embodiments, if a user performs manual cutting on a work surface (e.g., cutting on the work surface as if using a conventional (non-automatically guided) handheld tool), one or more processors in system 2800 may store data describing the manual cutting (e.g., cutting path shape, cutting width, cutting path location on the work surface) in one or more memories in system 2800. In some embodiments, if a user cuts the work surface based on a design registered to the work surface, one or more processors in system 2800 may store data describing the desired path cutting (e.g., design name, desired path shape, desired path cutting width, desired path cutting location on the work surface) in one or more memories in system 2800. In some embodiments, if a user drills a series of holes on the work surface based on manual measurements, one or more processors in system 2800 may store data describing each drilled hole drawn by the user (e.g., hole dimensions, hole location on the work surface). In some embodiments, one or more processors in system 2800 may store data related to the position of system 2800 as system 2800 is moved by the user on the work surface (e.g., capturing position data by tracking a pattern on the work surface). In some embodiments, one or more processors in system 2800 may store data related to the location of system 2800 as system 2800 moves across a work surface to capture data for map generation. In some embodiments, cameras and maps (e.g., using location markers on the work surface, using location markers outside the work surface) are used to track the locations of system 2800 components (e.g., sensors, cameras, work components, adapters). In some embodiments, one or more positioning techniques (e.g., using one or more cameras to map location markers, ranging (e.g., using lasers, using ultrasound)) are used to track the locations of system 2800 components (e.g., sensors, cameras, work components, adapters). In some embodiments, system 2800 may use data stored in one or more memories to generate a data-based log.

[0320] In some embodiments, a design environment executing on one or more processors in system 2800 may create objects in the design environment using data stored in one or more memories in system 2800. In some embodiments, the object may be a design scheme. In some embodiments, the stored data may include one or more items in a log, including information referenced in the log. In some embodiments, one or more processors in system 2800 may create objects in the design environment based on a measured material profile, a measured material shape, a measurement template on the material, a trajectory generated based on an analysis object, or a trajectory drawn by the user. In some embodiments, objects created in the design environment may include work surface location information (e.g., the location of one or more markers on the work surface relative to one or more designs described in the design scheme, or the location of one or more designs described in the design scheme relative to a map of the work surface). In some embodiments, objects created in the design environment may be exported as a design scheme and stored in one or more memories in system 2800. In some embodiments, objects created in the design environment may be exported in a data format compatible with commercial design programs (e.g., Adobe Illustrator, Autodesk Fusion 360) and stored in one or more memories in system 2800. In some embodiments, output from the design environment (e.g., design schemes, design program-specific data) can be transferred to another computer system (e.g., by transferring the design scheme to a removable storage device, or by transferring the design scheme via a communication interface operatively coupled to one or more processors in system 2800). In some embodiments, other computer systems can use the output from the design environment of system 2800 within the design environment. In some embodiments, another computer can make the output from the design environment of system 2800 available to other computer systems.

[0321] To facilitate collaboration, in some embodiments, one or more processors in system 2800 may generate log data describing the workpiece's work surface based on one or more of the measured contour of the work surface, data collected during the mapping of the work surface, or data collected from probing the work surface. In some embodiments, the data describing the workpiece's work surface may include 3D data collected by probing the work surface using system 2800. In some embodiments, the data describing the workpiece's work surface may include image data displaying a portion of the work surface (e.g., a photo mosaic created based on an image of the work surface).

[0322] In some embodiments, one or more processors in system 2800 or one or more processors in another computer system may use recorded data (e.g., describing the working surface of a workpiece) to generate a model (e.g., based on data describing the working surface). In some embodiments, the model may be generated in a design environment. In some embodiments, the model may display portions of the working surface based on image data included in the log (e.g., if the working surface is made of wood, displaying patterns of grains or knots in the wood, thus displaying markings on the working surface, if present). In some embodiments, the model may display the shape of the working surface based on measured edges of the working surface. In some embodiments, the model may display the morphology of the working surface based on data collected from probing the working surface. In some embodiments, the model includes dimensional data related to the working surface based on a map of system 2800.

[0323] In some embodiments, the model may be presented on a display operatively coupled to one or more processors in system 2800. In some embodiments, the model may be displayed on a display operatively coupled to one or more processors in a computer system other than system 2800 (e.g., a desktop computer). In some embodiments, a user may use the model view to place one or more design options at specific locations on a work surface. For example, a user may select to place a design option at a location where knots exist in the wood constituting the work surface as shown in the model, or to cut off a portion of the work surface. In some embodiments, a user may use the dimensions of the model to select one or more design options that maximize the use of the available work surface. In some embodiments, a user may add features or annotations to the model that can be recorded for use on system 2800. In some embodiments, using the model, a user may design real-world information about the work surface in a design environment. Once the user has processed the model (e.g., selected or created a design option and its placement), the user may send the data back to system 2800 or another computer system. In some embodiments, other computer systems may send data to system 2800. In some embodiments, data transmitted from the design environment to system 2800 may reference a map of the work surface used on system 2800. In some embodiments, the data transmitted to system 2800 may include annotations, design schemes, or location information to register the design schemes to a map. In some embodiments, system 2800 may use data from the design environment to generate a desired path for a working component or adapter. In some embodiments, system 2800 may operate on a working surface based on the generated desired path.

[0324] In some embodiments, a user of system 2800 can work with a user of a remote computer system, enabling system 2800 to receive data from the remote computer system (e.g., data describing the placement of the aforementioned design scheme, the design scheme itself, or changes made to the design scheme by the user of the remote computer system). In some embodiments, the remote computer system can receive data from system 2800 (e.g., design scheme or changes to the design scheme made by the user of system 2800, data describing the work performed by system 2800 (e.g., cutting or measurement performed on a work surface, map data associated with the work surface)). In this way, two users can collaborate on design and manufacturing using their respective systems. In some embodiments, the computer system and system 2800 can communicate with each other using a communication interface (e.g., WiFi, Bluetooth, USB). In some embodiments, the computer system and system 2800 can communicate through one or more other computer systems that communicate with the computer system and system 2800.

[0325] In some embodiments, a user of a program on a computer system can make changes to a design scheme recorded on or stored on a computer system located remotely from that computer system. The computer system log tracks changes made to the design scheme, allowing the changes to be stored in the original design scheme, or the changes to be stored in a new design scheme based on the original design scheme (e.g., as a revision of the original design scheme). In some embodiments, a portion of the log on the computer system is transmitted directly from the computer system to system 2800 or transmitted to another computer system before being transmitted to system 2800. In some embodiments, system 2800 can download a portion of the log from another computer system. In some embodiments, system 2800 can update a local copy of the design scheme based on a portion of the log from the computer system. In some embodiments, system 2800 can download an updated design scheme from another computer system, wherein the updated design scheme includes changes made by the other computer system based on a portion of the log from the computer system.

[0326] In some embodiments, a design synchronization application on a computer system (e.g., system 2800) may process one or more portions of logs from one or more computer systems to generate design revisions based on the log data. In some embodiments, a user tracking application may process one or more portions of logs from one or more computer systems to generate a summary of user activities for one or more users (e.g., design generation activities, cutting productivity). In some embodiments, a tool tracking application may process one or more portions of logs from one or more tools to generate tool-based summaries (e.g., tracking tool usage (e.g., tool servicing, workpiece replacement)). In some embodiments, a build analytics application may process one or more portions of logs from one or more tools to generate a build summary of work completed by one or more tools. For example, a build analytics application may allow application users to query details of a project completed by a given tool (e.g., the type of drill bit used, the drill bit size used). In another example, a build analytics application may allow application users to compare as-built details (e.g., cut paths) with the intended design details of a project completed by a given tool (e.g., dimensions in a digital design). In some embodiments, the application may combine one or more of the functionalities of the above applications. Any of the above applications may be a standalone application that executes on a computer system (e.g., system 2800), or may be executed in another application (e.g., in a design program) on a computer system (e.g., system 2800).

[0327] In some embodiments, the computer system may receive system activity information (e.g., a portion of the logs of each computer system or a portion of data referenced in the logs of the computer system) from one or more tools. In some embodiments, one or more tools may transmit their system activity information to the computer system using a communication interface (e.g., an 802.11 communication adapter, a cellular communication adapter, a Bluetooth communication adapter). In some embodiments, the computer system may maintain a list of tasks to be completed by one or more tools. In some embodiments, the computer system may track the completion status of one or more tasks based on the system activity information received from each tool. In some embodiments, the computer system may track the usage of each tool to schedule maintenance and servicing. In some embodiments, the computer system may track user productivity based on system activity information from tools used by a given user. For example, using the computer system, a supervisor may view: the completion status of tasks on the work site, the maintenance and servicing needs of tools on the work site, or the productivity of individual workers on the work site (based on their tool usage).

[0328] Figure 29An exemplary tool log 2910 from ToolUnit123 is shown. Entry 2911 in tool log 2910 contains a log ID, timestamp, and information about the current user of the tool, information indicating that the design scheme "ElectricalBox-revision2.svg" received from ServerUnitDEF (synchronization), tool internet connection information, and the approximate location of the tool based on its IP address. Entry 2912 in tool log 2910 contains a log ID, timestamp, and describes the mapping and associated information of the work surface. Entry 2913 in tool log 2910 contains a log ID, timestamp, and describes associating the design scheme "ElectricalBox-revision2.svg" with the map as Instance1 and associated information. Entry 2914 in tool log 2910 contains a log ID, timestamp, and describes the changes made to Edge3 in the design scheme "ElectricalBox-revision2.svg" of Instance1 and associated information. Entry 2915 in Tool Log 2910 contains a log ID, a timestamp, and describes the selection of the drill bit radius and the generation of the desired path for the working piece. Entry 2916 in Tool Log 2910 contains a log ID, a timestamp, and describes the desired path and associated information for cutting Edge3 at Instance1. Entry 2916 describes the cutting accuracy based on the measurement accuracy of guiding the working piece along the desired path. Accuracy is related to comparing the measured position of the working piece (e.g., based on a map and image data with location markers on the working surface) with the desired path. Entry 2917 in Tool Log 2910 contains a log ID, a timestamp, and describes the user logging out and sending Tool Log 2910 to the computer system ServerUnit 789 (synchronization). In some embodiments, the desired path may specify the movement of the adapter that holds the working piece in place. In some embodiments, the desired path may specify the position of one or more sensors that capture data for determining the position using a map. In some embodiments, changes to Edge3 at Instance1 may be omitted. In some embodiments, ToolUnit 123 may send Tool Log 2910 to ServerUnit DEF (synchronization).

[0329] Figure 29An exemplary computer log 2920 from ComputerUnit456 is shown. In this example, computer log 2920 shows activity related to a CAD session (CADSessionABC). Entry 2911 in computer log 2920 contains a log ID, a timestamp, and information about the current user, the computer system's internet connection information, and the approximate location of the computer system based on its IP address. Entry 2922 in computer log 2920 contains a log ID, a timestamp, and describes the creation of the design scheme "ElectricalBox.svg". Entry 2923 in computer log 2920 contains a log ID, a timestamp, and describes a revision of the design scheme "ElectricalBox.svg" to create the design scheme "ElectricalBox-revision2.svg". Entry 2924 in computer log 2920 contains a log ID, a timestamp, and describes a revision of the design scheme "ElectricalBox-revision2.svg" to create the design scheme "ElectricalBox-revision3.svg". Entry 2925 in computer log 2920 contains a log ID, a timestamp, and describes the data synchronization between ComputerUnit456 and ServerUnit789. In some embodiments, such as Figure 29As shown in entry 2925, synchronization is initiated by the user. In some embodiments, data synchronization can occur without any user input. In some embodiments, data synchronization can automatically update the data on the computer system being synchronized. In some embodiments, as shown in this example, the user can be prompted to accept the changes based on the updated data. Entry 2925 describes the creation of the design scheme "ElectricalBox-revision2-revisionA.svg" based on applying changes from "ElectricalBox-revision2.svg" Instance1-Edge3 (see Tool Log 2910 entry 2916) from ToolUnit123 to the design "ElectricalBox-revision2.svg" created on ComputerUnit456 (see Computer Log 2920 entry 2923). Entry 2925 also describes creating the design "ElectricalBox-revision3-revisionA.svg" based on applying changes from "ElectricalBox-revision2.svg" Instance1-Edge3 (see Tool Log 2910 Entry 2916) created on ComputerUnit456 to the updated design "ElectricalBox-revision3.svg" (see Computer Log 2920 Entry 2924). Entry 2926 in Computer Log 2920 contains the log ID, timestamp, and describes the user logging out of CADSessionABC on ComputerUnit456.

[0330] Figure 29 The structures of the tool log 2910 and computer log 2920 shown are exemplary. In some embodiments, a first computer system (e.g., ComputerUnit 456) may retrieve portions of the logs directly from a second computer system (e.g., ToolUnit 123), or vice versa. In some embodiments, an application for synchronizing data may be executed on a tool (e.g., ToolUnit 123), wherein the tool retrieves the logs from the computer system (e.g., ComputerUnit 456). In some embodiments, a computer system (e.g., ServerUnit 789) may receive a first log (e.g., computer log 2920) from a first computer system (e.g., ComputerUnit 456), a second log (e.g., tool log 2910) from a second computer system (e.g., ToolUnit 123), and run an application to synchronize data based on the information contained in the first and second logs.

[0331] In some embodiments, one or more computer systems may use a peer-to-peer or server-mediated system to transfer data to each other (e.g., design schemes). For example, in Figure 29 In this example, the "ElectricalBox-revision2.svg" design created in entry 2923 of computer log 2920 can be synchronized from ComputerUnit 456 to the computer system (ServerUnit 789), and ToolUnit 123 can retrieve "ElectricalBox-revision2.svg" from the computer system (ServerUnit 789), as shown in entry 2911 of tool log 2910. In another example, the "ElectricalBox-revision2.svg" created in entry 2923 of computer log 2920 can be synchronized from ComputerUnit 456 to ToolUnit 123 (e.g., as shown in entry 2911 of tool log 2910). In some embodiments, although not in Figure 29 The computer log 2920 shows this, but the synchronization of the design scheme can be stored in the log by a computer system (e.g., ComputerUnit456).

[0332] In some embodiments, system 2800 may use one or more triggering rules to evaluate information, commands, or inputs related to the position of one or more components to trigger one or more actions. In some embodiments, the position of a component may be determined by mapping a work surface using one or more sensors and determining the position of the component based on data from one or more sensors and a map. In some embodiments, system 2800 may use one or more triggering rules to evaluate user-related information, commands, or inputs (e.g., user position relative to the tool, user contact with the tool) to trigger one or more actions.

[0333] In some embodiments, one or more processors in system 2800 may analyze one or more of the following: (1) information about the location of one or more components (e.g., the location of the cutting drill bit, the location of a sensor (e.g., a camera); (2) input from one or more sensors (e.g., input from a grip sensor on the system's handle, input from a microphone (e.g., based on commands or sounds from the user of the system or other individuals nearby), input from a force sensor in the system base, input from an IMU in the system, input from a work surface composition sensor (e.g., to prevent cutting fiberglass materials), input from a switch triggered by the removal of the finger guard and dust cover 2806); and (3) input from the user (e.g., on the touchscreen display UI). (4) User interaction, commands from a remote computer system (e.g., system shutdown triggered by a foreman using a computer system remote from system 2800), (5) Information about the location of the system (e.g., the system's position relative to the edge of a workpiece, the system's geographical location (e.g., workplace location), the system's location within a structure (e.g., a gas water heater)), (6) Information about the location of a user or a user's body part (e.g., face, hands, eyes) relative to one or more components of the system (e.g., a working component) or relative to the system itself (e.g., using a stereo camera, time-of-flight camera, ultrasonic sensor, capacitive sensor, beam interruption sensor, LIDAR), or (7) Information about the user (e.g., detecting whether the user is wearing goggles), to trigger one or more actions. In some embodiments, any combination of the information, commands, or inputs listed above may be analyzed when one or more processors in the system evaluate one or more triggering rules. In some embodiments, based on the evaluation, one or more processors in the system trigger one or more actions.

[0334] In some embodiments, one or more processors in the system may evaluate rules based on changes in the relative position between one or more sensors and a working surface. For example, if one or more processors detect that the height of the camera relative to the working surface indicates that the system base is tilted relative to the working surface or is no longer in contact with the working surface, one or more processors in the system may trigger one or more actions. In some embodiments, one or more processors in the system may evaluate rules to generate a map based on the position of the system relative to the scanned area (e.g., determined based on the camera position relative to a map). For example, if the system moves outside the scanned area, one or more processors in the system may trigger one or more actions. In some embodiments, one or more processors in the system may evaluate rules based on sensors indicating that at least a portion of the system base is tilted relative to the working surface or is no longer in contact with the working surface. For example, if the sensors measure that the system is tilted by more than (e.g., 1 degree, 2 degrees, 5 degrees, 10 degrees, 15 degrees, or 25 degrees), one or more processors in the system may trigger one or more actions. In another example, if the force sensor detects a change or difference between measurements (e.g., 0.5%, 1%, 2%, 3%, or an absolute change such as 1N, 0.5N, 0.25N, 0.1N, 0.05N, or 2N), one or more processors in the system can trigger one or more actions.

[0335] In some embodiments, one or more processors in the system may evaluate rules based on detecting signals from at least one grip sensor indicating that a user is not touching the grip sensor (e.g., on a handle). For example, if the user does not touch the grip sensor as required, one or more processors in the system may trigger one or more actions. In some embodiments, one or more processors in the system may evaluate rules based on audible commands or sounds detected by a microphone. For example, if the system detects data related to one or more words / phrases (e.g., “stop”) or sounds (e.g., screams) while processing signals from the microphone in the system (e.g., speech recognition), one or more processors in the system may trigger one or more actions. In some embodiments, one or more processors in the system may evaluate rules based on the sound of a working component's operation detected by the microphone in the system. For example, if one or more processors in the system detect a change in the sound of a working component's operation by processing signals from the microphone in the system (e.g., a change in the cutting sound emitted by the system if the working component is interrupted), one or more processors in the system may trigger one or more actions.

[0336] In some embodiments, one or more processors in the system may evaluate rules based on the user's position relative to the system. For example, if one or more processors in the system detect data from one or more sensors indicating that the user is not correctly positioned relative to the system (e.g., holding system 2800 handles 2808 and 2810 from the camera 2816 side instead of the spindle 2818 side), one or more processors in the system may trigger one or more actions. In some embodiments, one or more processors in the system may evaluate rules based on the detection of damage or breakage to a working component. For example, if one or more processors in the system detect damage or breakage to a working component (e.g., using a beam interruption sensor), one or more processors in the system may trigger one or more actions. In some embodiments, one or more processors in the system may evaluate rules based on a watchdog function. For example, if one or more processors in the system detects that: (1) data from an internal sensor or processor does not arrive on time, or (2) data from an internal sensor or processor is incorrectly formatted (e.g., indicating a malfunction), one or more processors in the system may trigger one or more actions.

[0337] In some embodiments, as described above, one or more processors in the system may evaluate rules based on the positional relationship between the desired path and the system adjustment range. For example, if one or more processors detect that the working component cannot reach at least one point on the desired path due to the location of the system and the size of the system adjustment range, one or more processors in the system may trigger one or more actions. In some embodiments, one or more processors in the system may evaluate rules based on one or more processors detecting that the position of the working component is close to the edge of the system adjustment range. For example, one or more processors in the system may monitor one or more of the working component's position, velocity, acceleration, or related parameters (e.g., the derivative of acceleration) relative to the edge of the system adjustment range to predict the motion of the working component. If the predicted motion of the working component indicates that the working component will reach the edge of the adjustment range within the time required for the working component to retract from the working surface, one or more processors in the system may trigger one or more actions.

[0338] In some embodiments, as described above, one or more processors in the system can evaluate rules based on the positional relationship between the desired path and the system adjustment range. For example, if one or more processors detect that, due to the location of the system, the desired path overlaps only with a predetermined portion of the system adjustment range (e.g., within a given area of ​​the system adjustment range from its outer edge), one or more processors in the system can trigger one or more actions. In this example, if the system adjustment range is circular, the predetermined portion can be an annular area excluding a portion of the system adjustment range area at its center (e.g., 50%, 60%, 70%, 80%, or 90%). In this example, if the desired path overlaps only with the predetermined portion, one or more processors in the system can trigger the retraction of the working component from the working surface (e.g., into the body of the system). In the configuration identified above, a system displacement where the user moves the desired path outside the adjustment range may result in unintended cutting of the working surface.

[0339] In some embodiments, one or more trigger actions involve setting the system to a safe state (e.g., retracting the working component from the working surface (e.g., into the system body), stopping the cutting drill bit rotation). In some embodiments, one or more trigger actions involve using the system to warn the user (e.g., warning the user that the working component in the system has been damaged). In some embodiments, the trigger action may be selected from one or more of the following: retracting the working component from the working surface, stopping the movement of the working component (e.g., cutting off power to the spindle motor 2902 of the rotating cutting drill bit), slowing down the movement of the working component (e.g., reducing the rotational speed of the cutting drill bit), issuing an audible alarm (e.g., using a speaker connected to one or more processors in the system), storing an alarm notification (e.g., storing the alarm notification in a log located in the system's memory, storing the alarm notification in a computer system remote from the system), or triggering a visual indicator (e.g., a flashing light on the system).

[0340] While various actions are described herein based on exemplary methods of this disclosure, it should be understood that some actions described herein may be omitted and other actions may be added without departing from the scope of this disclosure.

[0341] Those skilled in the art will recognize that changes or modifications can be made to the above embodiments without departing from the broad concept of this disclosure. Elements or features of one or more embodiments may be combined with elements or features of other embodiments without departing from the scope of this disclosure. Therefore, it should be understood that this disclosure is not limited to the specific embodiments described, but is intended to cover all modifications and variations within the scope and spirit of this disclosure.

[0342] The systems described herein may provide any one or more of these components, and these components may be provided on a standalone machine, or, in some embodiments, on multiple machines in a distributed system. The systems and methods described herein may be implemented as methods, apparatus, or articles of manufacture using programming or engineering techniques to produce software, firmware, hardware, or any combination thereof. Furthermore, the systems and methods described herein may be provided as one or more computer-readable programs implemented on or in one or more articles of manufacture. As used herein, the term "article of manufacture" is intended to include code or logic accessible and embedded therein from one or more computer-readable devices, firmware, programmable logic, memory devices (e.g., EEPROM, ROM, PROM, RAM, SRAM), hardware (e.g., integrated circuit chips, field-programmable gate arrays (FPGAs), application-specific integrated circuits (ASICs)), electronic devices, or computer-readable non-volatile storage units (e.g., CD-ROMs, floppy disks, hard disks). Articles of manufacture may be accessible from a file server that provides access to the computer-readable program via network transmission lines, wireless transmission media, signals propagating through space, radio waves, or infrared signals. Articles of manufacture may be flash memory cards or magnetic tapes. An article of manufacture includes hardware logic and software or programmable code embedded in a computer-readable medium executed by a processor. Typically, the computer-readable program can be implemented in any programming language, such as LISP, PERL, C, C++, C#, PROLOG, or in any bytecode language, such as JAVA. The software program can be stored as object code on or within one or more articles of manufacture.

[0343] Some embodiments of methods and systems for virtualizing audio hardware for one or more virtual machines have been described, and it will now be apparent to those skilled in the art that other embodiments can be used in conjunction with the concepts of this disclosure.

[0344] While various embodiments have been described and illustrated herein, those skilled in the art will readily conceive of various other means or structures for performing the functions or obtaining the results or one or more advantages described herein, and each of these variations or modifications is considered to be within the scope of the embodiments described herein. More generally, those skilled in the art will readily understand that all parameters, dimensions, materials, and configurations described herein are exemplary, and actual parameters, dimensions, materials, or configurations will depend on the specific application using this teaching. Those skilled in the art will recognize or be able to determine equivalents of the specific embodiments described herein using no more than conventional experimentation. Therefore, it should be understood that the foregoing embodiments are presented by way of example only, and that embodiments may be practiced in ways other than those specifically described and claimed within the scope of the appended claims and their equivalents. Embodiments of this disclosure relate to each individual feature, system, article, material, kit, or method described herein. Furthermore, any combination of two or more such features, systems, articles, materials, kits, or methods is included within the scope of this disclosure if these features, systems, articles, materials, kits, or methods do not contradict each other.

[0345] The embodiments described above can be implemented in any of a variety of ways. For example, the embodiments can be implemented using hardware, software, or a combination thereof. When implemented in software, the software code can execute on any suitable processor or set of processors, whether the software code is provided on a single computer system or distributed across multiple computer systems.

[0346] In addition, a computer may have one or more input and output devices. These devices may, among other things, be used to present a user interface. Examples of output devices that can be used to provide a user interface include a printer or display screen for visual presentation and speakers or other sound-generating devices for audible presentation. Examples of input devices that can be used for a user interface include keyboards and pointing devices such as mice, touchpads, and digital tablets. As another example, a computer may receive input information via speech recognition or other audible formats.

[0347] These computers can be interconnected in any suitable form through one or more networks, including local area networks (LANs) or wide area networks (WANs), such as enterprise networks, as well as intelligent networks (INs) or the Internet. Such networks can be based on any suitable technology and can operate according to any suitable protocol, and can include wireless networks, wired networks, or fiber optic networks.

[0348] A computer used to implement at least a portion of the functions described herein may include one or more memories, one or more processing units (also referred to herein as "processors"), one or more communication interfaces, one or more display units, and one or more user input devices. The memories may include any computer-readable medium and may store computer instructions (also referred to herein as "processor-executable instructions") for implementing the various functions described herein. One or more processing units may be used to execute the instructions. One or more communication interfaces may be coupled to wired or wireless networks, buses, or other means of communication, and thus may allow the computer to send messages to or receive messages from other devices. For example, one or more display units may be provided to allow a user to view various information relating to the execution of instructions. For example, one or more user input devices may be provided to allow a user to manually adjust, make selections, input data or various other information, or interact with the processor in any of various ways during the execution of instructions.

[0349] The various methods or processes outlined in this article can be encoded as software that can be executed on one or more processors employing any of a variety of operating systems or platforms. Furthermore, such software can be written using any of many suitable programming languages ​​or programming or scripting tools, and can also be compiled into executable machine language code or intermediate code that executes on a framework or virtual machine.

[0350] The concepts described herein can be implemented as a computer-readable storage medium (or multiple computer-readable storage media) (e.g., computer memory, one or more floppy disks, compact disks, optical disks, magnetic tapes, flash memory, circuit configurations of field-programmable gate arrays or other semiconductor devices, or other non-transient media or tangible computer storage media) encoding one or more programs that, when executed on one or more computers or other processors, perform methods implementing the various embodiments described herein. The computer-readable medium may be transportable, such that programs stored thereon can be loaded onto one or more different computers or other processors to implement the various aspects and embodiments described herein.

[0351] As used herein, "working component" can mean a drill bit, engraving drill bit, circular saw blade, cutting drill bit, cutting component, cutting tip, cutting tool tip, drill bit, saw blade (e.g., for jigsaws, saber saws, rotary saws), probe, milling drill bit, tool tip, V-cutting drill bit, or similar components used in conventional hand tools. As used herein, "working component" can mean a pipette tip, a vacuum nozzle for picking up and placing tools, a vinyl cutter, writing instruments (e.g., pencils, pens, drawing pens), or similar items.

[0352] As used herein, a “working surface” refers to a surface on which a working component can perform actions (e.g., cutting, drawing, probing, contacting). In some embodiments, the material on which the working component acts includes a working surface having a certain thickness (e.g., a 4' x 8' plywood with a thickness of 1 / 2 inch). In some embodiments, the workpiece (e.g., a rectangular box with dimensions of 1' x 2' x 3', a 4' x 8' plywood with a thickness of 1 / 2 inch) includes more than one working surface on which the working component can act (e.g., six different faces of the rectangular box). In some embodiments, a working surface may include one or more of the following: exposed portions of the workpiece (e.g., exposed wood in the case of a workpiece made of wood), markings made on the workpiece (e.g., patterns made with writing instruments), marks placed on the workpiece (e.g., strips, films, tapes, location markers), paper (e.g., laid or attached to the workpiece), drawing templates, etc.

[0353] As used herein, "actuator" may refer to a DC servo motor, AC motor, stepper motor, solenoid, or any position or orientation adjustment mechanism that uses one or more of hydraulic, pneumatic, electric, magnetic, thermal, or mechanical drives.

[0354] As used herein, “camera” can refer to an image capture system, including conventional digital cameras (using an image sensor and one or more lenses), light field cameras, imaging arrays (e.g., planar Fourier capture arrays) or similar systems.

[0355] As used herein, “sensor” can refer to a camera, ultrasonic sensor, optical sensor (e.g., laser sensor, infrared sensor), time-of-flight sensor, inertial sensor, phase sensor, optical sensor, hybrid sensor (combining one or more sensors), or any similar sensor (e.g., position sensor, ultrasonic ranging sensor, laser ranging sensor).

[0356] As used herein, the terms "program" or "software" generally refer to any type of computer code or set of computer-executable instructions that can be used to program a computer or other processor to implement the various aspects of the embodiments described above. Furthermore, according to one aspect, one or more computer programs that perform the methods or operations described herein do not need to reside on a single computer or processor, but can be distributed in a modular manner across multiple different computers or processors to implement the various aspects or embodiments described herein.

[0357] Computer-executable instructions can take many forms, such as program modules that are executed by one or more computers or other devices. Typically, program modules include routines, programs, objects, components, or data structures that perform a specific task or implement a specific abstract data type. The functionality of a program module can often be combined or distributed as needed in various embodiments.

[0358] Data structures can be stored in any suitable form on a computer-readable medium. For simplicity, a data structure may be shown as having fields related by location within the data structure. This relationship can also be achieved by allocating storage for each field, which has a location in the computer-readable medium that conveys the relationship between the fields. Any suitable mechanism can be used to establish relationships between information in the fields of a data structure, including by using pointers, labels, or other mechanisms to establish relationships between data elements.

[0359] The concepts described herein can be implemented as one or more methods, examples of which have been provided. Unless otherwise indicated, the steps performed as part of a method can be ordered in any suitable manner. Thus, even though shown as sequential steps in exemplary embodiments, embodiments in which steps are performed in a different order than those shown can be constructed, which may include performing some steps simultaneously.

[0360] As used herein, the terms “light,” “optics,” and related terms should not be understood to refer only to electromagnetic radiation in the visible spectrum, but generally to electromagnetic radiation in the ultraviolet (approximately 10 nm to 390 nm), visible (390 nm to 750 nm), near-infrared (750 nm to 1400 nm), mid-infrared (1400 nm to 15,000 nm), and far-infrared (15,000 nm to approximately 1 mm).

[0361] Unless explicitly indicated to the contrary, the indefinite articles “a” and “an” as used in this specification and claims should be understood to mean “at least one”.

[0362] A reference to "or" can be interpreted as inclusive, such that any term described using "or" can refer to a single, more than one, or any of the terms described.

[0363] In the claims and the foregoing description, all transitional phrases such as “comprising,” “including,” “carrying,” “having,” “containing,” “involving,” “holding,” “consisting of,” etc., should be understood as open-ended, that is, meaning including but not limited to.

Claims

1. A system for collaborative operation using a drilling rig, the drilling rig having one or more actuators to move an adapter for holding a working member, the system comprising: One or more processors; One or more sensors, operatively coupled to at least one of the one or more processors; as well as One or more memories, operatively coupled to at least one of the one or more processors and having instructions stored thereon, which, when executed by at least one of the one or more processors, cause the system to: First data related to the working surface is obtained using at least one of the one or more sensors; The first data obtained is sent to a first computer system, wherein the first data is related to a location marker placed on a work surface; Receive second data from a second computer system, wherein the second data is at least in part based on design modifications related to the first data; as well as The desired path of the component is determined at least in part based on the second data, wherein the position of the component is related to the position of the working component.

2. The system of claim 1, wherein the first data includes information relating to at least a portion of the edge of the working surface.

3. The system of any one of claims 1-2, wherein the first data is at least partially based on probing the working surface using the working component.

4. The system of any one of claims 1-3, wherein the first data includes image data, and the image data is related to the appearance of the working surface.

5. The system as claimed in any one of claims 1-4, wherein the first computer system and the second computer system are identical.

6. The system of any one of claims 1-5, wherein the component is an adapter.

7. The system according to any one of claims 1-6, wherein the component is a working member.

8. A computer-implemented method for collaborative operation using a drilling rig, the drilling rig having one or more actuators to move an adapter for holding a working member, the method comprising: First data related to the working surface is obtained using at least one of one or more sensors; The first data obtained is sent to a first computer system, wherein the first data is related to a location marker placed on a work surface; Receive second data from a second computer system, wherein the second data is at least in part based on design modifications related to the first data; as well as The desired path of the component is determined at least in part based on the second data, wherein the position of the component is related to the position of the working component.

9. One or more computer-readable media storing instructions for using a drilling rig to achieve cooperation, the drilling rig having one or more actuators to move an adapter for holding a working member, wherein when the instructions are executed by one or more computing devices, at least one of the one or more computing devices: First data related to the working surface is obtained using at least one of one or more sensors; The first data obtained is sent to a first computer system, wherein the first data is related to a location marker placed on a work surface; Receive second data from a second computer system, wherein the second data is at least in part based on design modifications related to the first data; as well as The desired path of the component is determined at least in part based on the second data, wherein the position of the component is related to the position of the working component.

10. A system for controlling a drilling rig, the drilling rig having one or more actuators to move an adapter for holding a working member, the system comprising: One or more processors; One or more sensors, operatively coupled to at least one of the one or more processors; as well as One or more memories, operatively coupled to at least one of the one or more processors and having instructions stored thereon, which, when executed by at least one of the one or more processors, cause the system to: First data relating to at least a portion of the working surface is obtained using at least one of the one or more sensors. The position of a component is determined at least in part based on first data, wherein the position of the component is related to the position of a working member; The location of the component is used to evaluate one or more triggering rules; and Based on the assessment, one or more actions are triggered.

11. The system of claim 10, wherein the one or more triggered actions are related to security.

12. The system of any one of claims 10-11, wherein the triggering action is the retraction of the working component from the working surface.

13. The system of any one of claims 10-12, wherein the working member is operable to perform work on a working surface, and the triggered action is to stop the work.

14. The system of any one of claims 10-13, wherein the triggered action causes an audible alarm to sound.

15. The system of any one of claims 10-14, wherein the triggered action causes a visible indicator to illuminate.

16. The system of any one of claims 10-15, wherein the triggered action is recording a notification in at least one of the one or more memories.

17. The system of any one of claims 10-16, wherein the triggering rule calculates the angle between the base of the drilling rig and the working surface, and if the calculated angle is higher than a predetermined threshold, the one or more actions are triggered.

18. The system of any one of claims 10-17, wherein a trigger rule check is performed to see if one or more points on the desired path are within the adjustment range of the working component, and if at least one point on the desired path is not within the adjustment range of the working component, the one or more actions are triggered.

19. The system of any one of claims 10-18, wherein the triggering rule checks for overlap between the desired path and a predetermined portion of the adjustment range of the working component, and triggers the one or more actions if the desired path overlaps only with the adjustment range in the predetermined portion.

20. The system of any one of claims 10-19, wherein the first data includes information related to location markers placed on the work surface.

21. A computer-implemented method for controlling a drilling rig, the drilling rig having one or more actuators to move an adapter for holding a working member, the method comprising: First data relating to at least a portion of the working surface is obtained using at least one of one or more sensors; The position of a component is determined at least in part based on first data, wherein the position of the component is related to the position of a working member; The location of the component is used to evaluate one or more triggering rules; and Based on the assessment, one or more actions are triggered.

22. A computer-implemented method for controlling a drilling rig, the drilling rig having one or more actuators to move an adapter for holding a working member, the method comprising: First data relating to at least a portion of the working surface is obtained using at least one of one or more sensors; The position of a component is determined at least in part based on first data, wherein the position of the component is related to the position of a working member; The location of the component is used to evaluate one or more triggering rules; and Based on the assessment, one or more actions are triggered.

23. A system for facilitating the use of a drilling rig, the drilling rig having one or more actuators to move an adapter for holding a working member, the system comprising: One or more processors; One or more cameras, operatively coupled to at least one of the one or more processors; as well as One or more memories, operatively coupled to at least one of the one or more processors and having instructions stored thereon, which, when executed by at least one of the one or more processors, cause the system to: Capture one or more images of one or more films positioned on the work surface using at least one of the one or more cameras; The desired path of the adapter is determined at least in part based on the edges of one or more films in the one or more captured images; as well as Actuator control information is provided, at least in part, based on the desired path, to move the adapter along the first direction using at least one of the one or more actuators as the drill moves along the second direction. The first direction is different from the second direction, and the desired path determines the movement of the adapter.

24. The system of claim 23, further comprising: One or more sensors, operatively coupled to at least one of the one or more processors, wherein the actuator control information is based at least in part on the location of one or more of the sensors.

25. The system of claim 24, wherein at least one of the one or more sensors comprises an ultrasonic sensor, a laser sensor, or an infrared sensor.

26. The system of claim 23, wherein the actuator control information is based at least in part on the location of a first camera among the one or more cameras.

27. The system of claim 26, wherein at least one of the one or more memories operably coupled to at least one of the one or more processors has instructions stored thereon, which, when executed by at least one of the one or more processors, cause the system to: First information, derived from a first image of the work surface captured by the first camera, is compared with second information, derived from a map, to determine the location of the first camera.

28. The system of claim 27, wherein the first information includes location information of features identified by analyzing the first image, and the features are on the working surface.

29. The system of any one of claims 27-28, wherein the map comprises a list of one or more location markers and their corresponding locations, the location markers being placed on a work surface, and the second information is based at least in part on the list.

30. The system of any one of claims 27-29, wherein the map comprises an image mosaic, the image mosaic comprising two or more image portions stitched together, the image mosaic displaying a portion of a work surface, and the second information is based at least in part on the image mosaic.

31. The system of any one of claims 27-30, wherein at least one of the one or more films comprises one or more location markers.

32. The system of any one of claims 27-31, wherein the desired path is associated with the map.

33. The system of any one of claims 23-32, wherein the working component is used to perform work on the material when the adapter follows the desired path.

34. The system as described in any one of claims 23-33, further comprising: monitor, At least one of the memories operably coupled to at least one of the one or more processors has instructions stored thereon that, when executed by at least one of the one or more processors, cause the system to: To make the display show the position of at least one point on the display adapter.

35. The system of claim 34, wherein the display position of the at least one point includes a top view of the center position of the adapter.

36. The system of any one of claims 34-35, wherein at least one of the one or more memories operably coupled to at least one of the one or more processors has instructions stored thereon that, when executed by at least one of the one or more processors, cause the system to: The display shows at least a portion of the position of the display path relative to at least one point on the adapter.

37. The system of any one of claims 34-36, wherein at least one of the one or more memories operably coupled to at least one of the one or more processors has instructions stored thereon, which, when executed by at least one of the one or more processors, cause the system to: The display shows an indication of the adapter travel range of one or more actuators used in the drilling rig, wherein the adapter travel range is determined with the drilling rig position fixed relative to the working surface.

38. The system of claim 37, wherein the indicated adapter travel range shows an area smaller than the determined adapter travel range.

39. The system of any one of claims 23-38, wherein the desired path is based at least in part on the physical dimensions of the working component.

40. The system of claim 39, wherein the working component is a cutting drill bit, and the physical dimension is the width of the cutting drill bit.

41. The system of any one of claims 23-40, wherein the first direction is a first linear direction and the second direction is a second linear direction.

42. The system of any one of claims 23-41, wherein the first direction is a first rotational direction and the second direction is a second rotational direction.

43. The system of any one of claims 23-42, wherein the desired path comprises one or more target points.

44. A computer-implemented method for facilitating the use of a drilling rig, the drilling rig having one or more actuators to move an adapter for holding a working member, the method comprising: Capture one or more images of one or more films positioned on a work surface using at least one of one or more cameras; The desired path of the adapter is determined at least in part based on the edges of one or more films in the one or more captured images; as well as Actuator control information is provided, at least in part, based on the desired path, to move the adapter along the first direction using at least one of the one or more actuators as the drill moves along the second direction. The first direction is different from the second direction, and the desired path determines the movement of the adapter.

45. A system of guidance tools, comprising: The base is coupled to the tool; probe; Computing devices, including one or more processors; An actuator, controlled by the computing device, causes the probe to move on an axis perpendicular to the base; The computing device is configured as follows: Receive instructions for mapping materials; The motor is instructed to lower the probe in response to the command, such that at least a portion of the probe extends beyond the base and protrudes from the edge of the material; Identify the edge contact between the probe and the material; as well as The position of the probe relative to the material is determined by identifying the edge contact between the probe and the material.

46. ​​The system of claim 45, comprising: One or more sensors communicatively coupled to a computing device; The computing device is configured as follows: The probe contacts the edge of the material via an indication received from one or more sensors or via an interface.

47. The system of claim 45, comprising: One or more sensors communicatively coupled to a computing device; The computing device is configured as follows: Images of the probe and at least a portion of the material are obtained via sensors to determine the position of the probe relative to the material.

48. The system of claim 45, comprising: One or more sensors communicatively coupled to a computing device; The computing device is configured as follows: The three-dimensional position of the probe is determined via the one or more sensors.

49. The system of claim 45, wherein the computing device is configured to: The position of the probe is determined based on the offset or orientation from the frame of the tool to the probe.

50. The system of claim 45, wherein the computing device is configured to: The probe's position relative to the material is determined based on its radius.

51. The system of claim 45, wherein the computing device is configured to: Identify the second edge contact between the working component and the material; and Based on the identification of the second edge contact between the probe and the material, the second position of the probe relative to the material is determined.

52. The system of claim 48, comprising: Combine the determined location and the second location to generate a map, outline, or grid of the material.

53. The system of claim 45, wherein the probe comprises at least one of a working member or a drill bit.

54. The system of claim 45, further comprising a spiral path generator component for: In response to instructions to cut material, a helical path is generated for the working component of the tool.

55. A method for a bootstrapping tool, comprising: Provide a base that is coupled to the tool; Provide probes; Provide computing devices that include one or more processors; A motor controlled by the computing device is provided to move the probe on an axis perpendicular to the base; The computing device receives instructions for mapping the material; The computing device instructs the motor to lower the probe in response to the command, such that at least a portion of the probe extends beyond the base and protrudes from the edge of the material; The computing device identifies the edge contact between the probe and the material; as well as The computing device determines the position of the probe relative to the material based on the identification of the edge contact between the probe and the material.

56. One or more computer-readable media storing instructions for facilitating the use of a drilling rig, the drilling rig having one or more actuators to move an adapter for holding a working member, wherein when the instructions are executed by one or more computing devices, at least one of the one or more computing devices: Capture one or more images of one or more films positioned on a work surface using at least one of one or more cameras; The desired path of the adapter is determined at least in part based on the edges of one or more films in the one or more captured images; as well as Actuator control information is provided, at least in part, based on the desired path, to move the adapter along the first direction using at least one of the one or more actuators as the drill moves along the second direction. The first direction is different from the second direction, and the desired path determines the movement of the adapter.