POSITION TRACKING FOR A LIFT DEVICE

A position tracking system can include a first wireless transceiver, a plurality of second wireless transceivers, and one or more processing circuits. The first wireless transceiver can be coupled to a portable tool or a component of a machine, and the first wireless transceiver can transmit a first wireless signal. The plurality of second wireless transceivers can be coupled to a fixed portion of the machine. The plurality of second wireless transceivers configured can also detect the first wireless signal and transmit a plurality of second wireless signals in response to detecting the first wireless signal. The first wireless transceiver can detect the plurality of second wireless signals. The one or more processing circuits can determine a position of at least one of the portable tool or the component of the machine based on communication between the first wireless transceiver and the plurality of second wireless transceivers.

BACKGROUND

The present disclosure relates generally to the field of lift devices. More specifically, the present disclosure relates to tracking a position of an implement supported by a lift device. Lift devices can be configured to support implements for performing various functions. For example, a lift device can include a platform that supports a user and/or a fork assembly for engaging and lifting materials. Such implements are often supported by a boom assembly that facilitates vertical and/or horizontal movement of the implements.

SUMMARY

One embodiment relates to a position tracking system. The position tracking system includes a first wireless transceiver, a plurality of second wireless transceivers, and one or more processing circuits. The first wireless transceiver configured to be coupled to a portable tool or a component of a machine. The first wireless transceiver configured to transmit a first wireless signal. The plurality of second wireless transceivers configured to be coupled to a fixed portion of the machine. The plurality of second wireless transceivers configured to detect the first wireless signal and transmit a plurality of second wireless signals in response to detecting the first wireless signal. The first wireless transceiver configured to detect the plurality of second wireless signals. The one or more processing circuits configured to determine a position of at least one of the portable tool or the component of the machine based on information acquired from the first wireless transceiver.

One embodiment relates to a position tracking system. The position tracking system includes a plurality of first wireless transceivers, a plurality of second wireless transceivers, and one or more processing circuits. The plurality of first wireless transceivers configured to transmit a plurality of first wireless signals, a first one of the plurality of first wireless transceivers configured to be coupled to a portable tool, and a second one of the plurality of first wireless transceivers configured to be coupled to a movable component of a machine. The plurality of second wireless transceivers configured to be coupled to a fixed portion of the machine, and the plurality of second wireless transceivers configured to transmit a plurality of second wireless signals. The one or more processing circuits configured to determine a first position of the portable tool and a second position of the movable component of the machine based on communication between the plurality of first wireless transceivers and the plurality of second wireless transceivers through the plurality of first wireless signals and the plurality of second wireless signals.

One embodiment relates to a position tracking system. The position tracking system includes a plurality of first wireless transceivers, a second wireless transceiver, a plurality of third wireless transceivers, and one or more processing circuits. The plurality of first wireless transceivers configured to transmit a plurality of first wireless signals, each of the plurality of first wireless transceivers configured to be coupled to a respective portable tool of a plurality of portable tools. The second wireless transceiver configured to transmit a second wireless signal and the second wireless transceiver configured to be coupled to a movable component of a machine. The plurality of third wireless transceivers configured to be coupled to a fixed portion of the machine and the plurality of third wireless transceivers configured to transmit a plurality of third wireless signals. The one or more processing circuits configured to determine a first position of each respective portable tool of the plurality of portable tools based on communication between the plurality of first wireless transceivers and the plurality of third wireless transceivers through the plurality of first wireless signals and the plurality of third wireless signals, determine a second position of the movable component of the machine based on communication between the second wireless transceiver and the plurality of third wireless transceivers through the second wireless signal and the plurality of third wireless signals, and provide a user interface that displays the first position of each respective portable tool of the plurality of portable tools and the second position of the movable component of the machine.

DETAILED DESCRIPTION

Referring generally to the figures, a lift device is configured to support an implement (e.g., a platform (e.g., for carrying an operator, tools, etc.), a fork assembly, a bucket (e.g., for carrying a person, for a construction machine, etc.), a basket, a plow, a grabber mechanism (e.g., for grabbing residential refuse containers, a claw for use in junk yards, etc.), a water deluge turret (e.g., for a fire apparatus, etc.), etc.) and includes a chassis and a lift assembly coupling the implement to the chassis. An operator may control the lift assembly to raise, lower, or otherwise move the implement or, in some cases, movement of the lift assembly and/or the lift device may be at least partially automated. In some embodiments, one or more transceivers may be coupled to the implement and/or to the lift assembly, and a plurality of additional transceivers may be coupled to various points on the chassis or body of the lift device. The transceivers coupled to the implement and/or to the lift assembly may be configured as “tags” for determining a position of the implement and/or to the lift assembly, while the additional transceivers coupled to various other points of the lift device may be configured as “anchors” with known positions. In this manner, the tag(s) may communicate short-range wireless signals with the anchors and, based on a time delay between broadcasting (i.e., transmitting) and receiving these short-range wireless signals, a position of the implement and/or to the lift assembly can be determined.

Lift Device

Turning first toFIG.1A, a machine, a lifting apparatus, lift device, or mobile elevating work platform (MEWP) (e.g., a telehandler, a boom lift, a towable boom lift, a lift device, an electric boom lift, etc.), shown as lift device10, includes a base (e.g., a support assembly, a drivable support assembly, a support structure, a chassis, etc.), shown as base assembly12, an implement (e.g., a platform, a terrace, a fork assembly, a bucket, a basket, a grabber arm/mechanism, a water deluge turret, a plow, etc.), shown as implement16, and a lift system (e.g., a boom, a boom lift assembly, a lifting apparatus, an articulated arm, a scissors lift, lift arms, an aerial ladder, etc.), shown as lift assembly14. Lift device10includes a front end (e.g., a forward facing end, a front portion, a front, etc.), shown as front62, and a rear end (e.g., a rearward facing end, a back portion, a back, a rear, etc.,) shown as rear60. Lift assembly14is configured to elevate implement16in an upwards direction46(e.g., an upward vertical direction) relative to base assembly12. Lift assembly14is also configured to translate implement16in a downwards direction48(e.g., a downward vertical direction). Lift assembly14is also configured to translate implement16in either a forwards direction50(e.g., a forward longitudinal direction) or a rearwards direction51(e.g., a rearward longitudinal direction). Lift assembly14generally facilitates performing a lifting function to raise and lower implement16, as well as movement of implement16in various directions.

With additional reference toFIG.1B, implement16is shown in further detail. As described herein, implement16may be any device or component configured to be coupled to an upper end of lift assembly14. For example, implement16may be a platform for supporting an operator or may include a fork assembly for engaging and lifting materials (e.g., pallets).FIGS.1A and1B, in particular, show a configuration of implement16as an elevated work platform. In this example, implement16is configured to provide a work area for an operator of lift device10to stand/rest upon. Implement16can be pivotably coupled to an upper end of lift assembly14. Lift device10is configured to facilitate the operator accessing various elevated areas (e.g., lights, platforms, the sides of buildings, building scaffolding, trees, power lines, etc.). Lift device10uses various electrically powered motors and electrically powered linear actuators or hydraulic cylinders to facilitate elevation and/or horizontal movement (e.g., lateral movement, longitudinal movement) of implement16(e.g., relative to base assembly12, or to a ground surface that base assembly12rests upon).

As shown inFIGS.1A and1B, configured as a platform, implement16includes a base member, a base portion, a platform, a standing surface, a shelf, a work platform, a floor, a deck, etc., shown as deck18. Deck18provides a space (e.g., a floor surface) for a worker to stand upon as implement16is raised and lowered. Implement16also includes a railing assembly including various members, beams, bars, guard rails, rails, railings, etc., shown as rails22. Rails22extend along substantially an entire perimeter of deck18. Rails22provide one or more members for the operator of lift device10to grasp while using lift device10(e.g., to grasp while operating lift device10to elevate implement16). Rails22can include members that are substantially horizontal to deck18. Rails22can also include vertical structural members that couple with the substantially horizontal members. The vertical structural members can extend upwards from deck18.

As shown inFIGS.1A and1B, implement16can also include a human machine interface (HMI) (e.g., a user interface, an operator interface, etc.), shown as user interface20. User interface20is configured to receive user inputs from the operator at or upon implement16to facilitate operation of lift device10. User interface20can include any number of buttons, levers, switches, keys, etc., or any other user input device configured to receive a user input to operate lift device10. User interface20may also provide information to the user (e.g., through one or more displays, lights, speakers, haptic feedback devices, etc.). User interface20can be supported by one or more of rails22.

As shown inFIG.1A, implement16includes a frame24(e.g., structural members, support beams, a body, a structure, etc.) that extends at least partially below deck18. Frame24can be integrally formed with deck18. Frame24is configured to provide structural support for deck18of implement16. Frame24can include any number of structural members (e.g., beams, bars, I-beams, etc.) to support deck18. Frame24couples implement16with lift assembly14. Frame24may be rotatably or pivotably coupled with lift assembly14to facilitate rotation of implement16about an axis28(e.g., a vertical axis). Frame24can also rotatably/pivotably couple with lift assembly14such that frame24and implement16can pivot about an axis25(e.g., a horizontal axis).

In some embodiments, implement16can also include one or more transceiver devices100. Transceiver devices100may be fixedly or removably coupled to any point on implement16. For example, transceiver devices100may be coupled to frame24, deck18, rails22, etc. In some embodiments, transceiver devices100may also be integrated with user interface20. Additionally, in some embodiments, implement16can include one or more sensor arrays102. Sensors arrays102may include a variety of different sensors for measuring height, movement, angle, etc., of implement16. Like transceiver devices100, sensor arrays102can also be coupled to frame24, deck18, rails22, etc., and/or integrated with user interface20. However, it will also be appreciated that transceiver devices100and/or sensor arrays102can be coupled to any other point on implement16or lift device10. Both transceiver devices100and sensor arrays102are described in greater detail below.

Lift assembly14includes one or more beams, articulated arms, bars, booms, arms, support members, boom sections, cantilever beams, etc., shown as lift arms32. Lift arms32are hingedly or rotatably coupled with each other at their ends. Lift arms32can be hingedly or rotatably coupled to facilitate articulation of lift assembly14and raising/lowering and/or horizontal movement of implement16. Lift device10includes a lower lift arm32a, a central or medial lift arm32b, and an upper lift arm32c. Lower lift arm32ais configured to hingedly or rotatably couple at one end with base assembly12to facilitate lifting (e.g., elevation) of implement16. Lower lift arm32ais configured to hingedly or rotatably couple at an opposite end with the medial lift arm32b.

Likewise, medial lift arm32bis configured to hingedly or rotatably couple with upper lift arm32c. Upper lift arm32ccan be configured to hingedly interface/couple and/or telescope with an intermediate lift arm32d. Upper lift arm32ccan be referred to as “the jib” of lift device Intermediate lift arm32dmay extend into an inner volume of upper lift arm32cand extend and/or retract. Lower lift arm32aand medial lift arm32bmay be referred to as “the boom” of the overall lift device10assembly. Intermediate lift arm32dcan be configured to couple (e.g., rotatably, hingedly, etc.), with implement16to facilitate leveling of implement16. In other embodiments, lift assembly14includes a different number of lift arms (e.g., one, two, three, etc. lift arms.)

Lift arms32are driven to hinge or rotate relative to each other by actuators34(e.g., electric linear actuators, linear electric arm actuators, hydraulic cylinders, etc.). Actuators34can be mounted between adjacent lift arms32to drive adjacent lift arms32to hinge or pivot (e.g., rotate some angular amount) relative to each other about pivot points84. Actuators34can be mounted between adjacent lift arms32using any of a foot bracket, a flange bracket, a clevis bracket, a trunnion bracket, etc. Actuators34are configured to extend or retract (e.g., increase in overall length, or decrease in overall length) to facilitate pivoting adjacent lift arms32to pivot/hinge relative to each other, thereby articulating lift arms32and raising or lowering implement16.

Actuators34can be configured to extend (e.g., increase in length) to increase a value of an angle74formed between adjacent lift arms32. Angle74can be defined between centerlines of adjacent lift arms32(e.g., centerlines that extend substantially through a center of lift arms32). For example, actuator34ais configured to extend/retract to increase/decrease angle74adefined between a centerline of lower lift arm32aand longitudinal axis78(angle74acan also be defined between the centerline of lower lift arm32aand a plane defined by longitudinal axis78and lateral axis80) and facilitate lifting of implement16(e.g., moving implement16at least partially along upward direction46). Likewise, actuator34bcan be configured to retract to decrease angle74ato facilitate lowering of implement16(e.g., moving implement16at least partially along downward direction48). Similarly, actuator34bis configured to extend to increase angle74bdefined between centerlines of lower lift arm32aand medial lift arm32band facilitate elevating of implement16. Similarly, actuator34bis configured to retract to decrease angle74bto facilitate lowering of implement16. Electric actuator34cis similarly configured to extend/retract to increase/decrease angle74c, respectively, to raise/lower implement16.

Actuators34can be mounted (e.g., rotatably coupled, pivotably coupled, etc.) to adjacent lift arms32at mounts40(e.g., mounting members, mounting portions, attachment members, attachment portions, etc.). Mounts40can be positioned at any position along a length of each lift arm32. For example, mounts40can be positioned at a midpoint of each lift arm32, and a lower end of each lift arm32.

Intermediate lift arm32dand frame24are configured to pivotably interface/couple at a implement rotator30(e.g., a rotary actuator, a rotational electric actuator, a gear box, etc.). Implement rotator30facilitates rotation of implement16about axis28relative to intermediate lift arm32d. In some embodiments, implement rotator30is positioned between frame24and upper lift arm32cand facilitates pivoting of implement16relative to upper lift arm32c. Axis28extends through a central pivot point of implement rotator30. Intermediate lift arm32dcan also be configured to articulate or bend such that a distal portion of intermediate lift arm32dpivots/rotates about axis25. Intermediate lift arm32dcan be driven to rotate/pivot about axis25by extension and retraction of actuator34d.

Intermediate lift arm32dis also configured to extend/retract (e.g., telescope) along upper lift arm32c. In some embodiments, lift assembly14includes a linear actuator (e.g., a hydraulic cylinder, an electric linear actuator, etc.), shown as extension actuator35, that controls extension and retraction of intermediate lift arm32drelative to upper lift arm32c. In other embodiments, one more of the other arms of lift assembly14include multiple telescoping sections that are configured to extend/retract relative to one another.

Implement16is configured to be driven to pivot about axis28(e.g., rotate about axis28in either a clockwise or a counter-clockwise direction) by an electric or hydraulic motor26(e.g., a rotary electric actuator, a stepper motor, a platform rotator, a platform electric motor, an electric platform rotator motor, etc.). Motor26can be configured to drive frame24to pivot about axis28relative to upper lift arm32c(or relative to intermediate lift arm32d). Motor26can be configured to drive a gear train to pivot implement16about axis28.

Lift assembly14is configured to pivotably or rotatably couple with base assembly12. Base assembly12includes a rotatable base member, a rotatable platform member, a fully electric turntable, etc., shown as a turntable70. Lift assembly14is configured to rotatably/pivotably couple with base assembly12. Turntable70is rotatably coupled with a base, frame, structural support member, carriage, etc., of base assembly12, shown as base36. Turntable70is configured to rotate or pivot relative to base36. Turntable70can pivot/rotate about central axis42relative to base36, about a slew bearing71(e.g., slew bearing71pivotably couples turntable70to base36). Turntable70facilitates accessing various elevated and angularly offset locations at implement16. Turntable70is configured to be driven to rotate or pivot relative to base36and about slew bearing71by an electric motor, an electric turntable motor, an electric rotary actuator, a hydraulic motor, etc., shown as turntable motor44. Turntable motor44can be configured to drive a geared outer surface73of slew bearing71that is rotatably coupled to base36about slew bearing71to rotate turntable70relative to base36. Lower lift arm32ais pivotably coupled with turntable70(or with a turntable member72of turntable70) such that lift assembly14and implement16rotate as turntable70rotates about central axis42. In some embodiments, turntable70is configured to rotate a complete360degrees about central axis42relative to base36. In other embodiments, turntable70is configured to rotate an angular amount less than 360 degrees about central axis42relative to base36(e.g., 270 degrees, 120 degrees, etc.).

In some embodiments, base assembly12can include one or more energy storage devices or power sources (e.g., capacitors, batteries, Lithium-Ion batteries, Nickel Cadmium batteries, fuel tanks, etc.), shown as batteries64. Batteries64are configured to store energy in a form (e.g., in the form of chemical energy) that can be converted into electrical energy for the various electric motors and actuators of lift device10. Batteries64can be stored within base36. Lift device10includes a controller38that is configured to operate any of the motors, actuators, etc., of lift device10. Controller38can be configured to receive sensory input information from various sensors of lift device10, user inputs from user interface20(or any other user input device such as a key-start or a push-button start), etc. Controller38can be configured to generate control signals for the various motors, actuators, etc., of lift device10to operate any of motors, actuators, electrically powered movers, etc., of lift device10. Batteries64are configured to power any of the motors, sensors, actuators, electric linear actuators, electrical devices, electrical movers, stepper motors, etc., of lift device10. Base assembly12can include a power circuit including any necessary transformers, resistors, transistors, thermistors, capacitors, etc., to provide appropriate power (e.g., electrical energy with appropriate current and/or appropriate voltage) to any of the motors, electric actuators, sensors, electrical devices, etc., of lift device10.

Batteries64are configured to deliver power to motors52to drive tractive elements82. A rear set of tractive elements82can be configured to pivot to steer lift device10. In other embodiments, a front set of tractive elements82are configured to pivot to steer lift device10. In still other embodiments, both the front and the rear set of tractive elements82are configured to pivot (e.g., independently) to steer lift device10. In some examples, base assembly12includes a steering system150. Steering system150is configured to drive tractive elements82to pivot for a turn of lift device10. Steering system150can be configured to pivot tractive elements82in pairs (e.g., to pivot a front pair of tractive elements82), or can be configured to pivot tractive elements82independently (e.g., four-wheel steering for tight-turns).

In some embodiments, base assembly12also includes a user interface21(e.g., a HMI, a user input device, a display screen, etc.). In some embodiments, user interface21is coupled to base36. In other embodiments, user interface21is positioned on turntable70. User interface21can be positioned on any side or surface of base assembly12(e.g., on the front62of base36, on the rear60of base36, etc.)

Referring now toFIGS.2A and2B, side perspective views of lift device10are shown, according to some embodiments. As shown, lift device10is configured to support a platform (e.g., implement16), although it will be appreciated that the examples shown are not intended to be limiting. For example, in other configurations, implement16may be a fork assembly or other type of implement that may be supported by lift device10, as discussed above.

In some embodiments, lift device10includes at least one first transceiver device (e.g., transceiver device100) coupled to implement16(e.g., fixedly or removably). The at least one first transceiver device may be generally referred to herein as tag202. Tag202may be configured to transmit and receive wireless signals and, in some embodiments, can include a memory and/or a processor for analyzing received wireless signals. In particular, tag202may be configured to transmit and receive short-range wireless signals, such as signals in the ultra-wideband (UWB) spectrum, which is generally between 3.1 and 10.6 GHz. Accordingly, tag202may also be generally referred to as an “UWB transceiver.” In some embodiments, lift device10includes a plurality of tags202. For example, a first tag202may be coupled to implement16, as shown, while one or more additional tags202(e.g., multiple tags202) may be positioned at various points along lift assembly14. In such embodiments, a tag (e.g., tag202) may be positioned on each arm of lift assembly14(e.g., lower lift arm32a, medial lift arm32b, upper lift arm32c, and/or intermediate lift arm32d). In some embodiments, tags (e.g., multiple tags202) may be positioned on one or more outriggers or leveling devices of lift device10to facilitate determining a position of each outrigger for leveling lift device10on a surface. Accordingly, it will be appreciated that any number of tags202may be utilized.

In some embodiments, lift device10also includes one or more additional or second transceiver devices (e.g., transceiver devices100) positioned (e.g., fixedly or removably coupled) at various points on base assembly12. These additional or second transceiver devices may be generally referred to herein as anchors204. Like tags202, anchors204may be configured to transmit and receive wireless signals, and in some embodiments can include a memory and/or a processor for analyzing received wireless signals. Accordingly, anchors204may also be configured to transmit and receive short-range wireless signals in the UWB spectrum (e.g., 3.1 to 10.6 GHz) and may, therefore, be referred to as UWB transceivers. As shown inFIGS.2A and2B, and in some embodiments, lift device10includes at least three anchors204positioned at different points on base assembly12. In some embodiments, lift device10includes a different number of anchors204(e.g., one, two, four, five, six, eight, ten, twelve, etc.).

As shown inFIGS.2A and2B, tag202may communicate with anchors204via short-range wireless signals. In particular, tag202may be configured to broadcast (i.e., transmit) a first wireless signal, which is subsequently detected by one or more of anchors204. In response to receiving the first wireless signal, each of anchors204may broadcast (i.e., transmit) a second wireless signal. These second wireless signals may, in turn, be detected by tag202and utilized to determine a position of implement16with respect to base assembly12. In some other embodiments, however, one or more of anchors204may broadcast the first wireless signal. Accordingly, in some such embodiments, the second wireless signal may be transmitted by tag202and detected by anchors204. In any case, a time delay (i.e., loopback time) between when tag202broadcasts the first wireless signal and when tag202receives the second wireless signals (or a time delay between when anchors204broadcast the first wireless signal and when anchors204receive the second wireless signals) may be utilized to determine a distance between tag(s)202and each of anchors204. Thus, if the position of each of anchors204is known, the position of implement16with respect to base assembly12can be determined. Additionally, based on the determined positioned of implement16, the position of lift assembly14may also be determined (or the position of lift assembly14may be independently determined using tags202thereon).

Advantageously, determining a position of lift assembly14and/or implement16utilizing wireless signals communicated between tag(s)202and anchor(s)204can require far fewer sensors that other position detection methods. For example, some lift devices may include a plurality of angle sensors, limit switches, and other sensors for determining the angle and/or position of each arm of lift assembly14. Therefore, the number of additional sensors can be greatly reduced for a lift device (e.g., lift device10) utilizing tag(s)202and anchor(s)204, which can reduce costs and maintenance (e.g., due to faulty sensors). Additionally, communicating in the UWB spectrum (e.g., 3.1 to 10.6 GHz) can provide a number of advantages over other position detection systems. For example, as shown inFIG.2B, UWB signals may propagate through various materials, such as concrete, brick, wood, etc. Accordingly, the position of implement16can be tracked through and around obstacles that may impede other types of wireless signals. Additionally features and advantages to position tracking via tag(s)202and anchor(s)204are described in greater detail below.

Lift Assembly Position Tracking

Referring now toFIG.3, a block diagram of a system300(e.g., an implement/lift arm tracking system) for detecting a position of an implement (e.g., implement16) supported by lift device10is shown, according to some embodiments. As described briefly above, system300may include one or more tags202and one or more anchors204configured to communicate via short-range wireless signals. In some embodiments, tags202and anchors204communicate in the UWB spectrum, between 3.1 and 10.6 GHz. However, it will be appreciated that, in some other embodiments, tags202and anchors204may be configured to communicate in other frequency ranges. For example, tags202and anchors204may be radio-frequency identification (RFID) tags (e.g., either passive or active), and thus may operate in any corresponding frequency bands (e.g., ultra-high frequency (UHF) RDIF operates around433MHZ). In any case, system300may be configured to determine a position of tags202, and thereby any component of lift device10that tags202are coupled to (e.g., implement16).

It will be also that, as described herein, system300may be implemented on various other types of equipment in addition to a lift device such as lift device10. In particular, system300may be implemented on any equipment or device where the position of a component is tracked or determined. In some such embodiments, system300can be implemented on a concrete mixing vehicle, a ladder fire truck or apparatus, a crane (e.g., wrecker, IMT, etc.), a scissor lift, a front or side-loading refuse vehicle, a plow truck, a telehandler, a bucket truck, and/or a construction machine (e.g., a skid-loader, an excavator, a backhoe, a bulldozer, a feller buncher, etc.), among other suitable machines or vehicles. For example, tag202may be coupled to a far end of a ladder on a fire truck while anchors204are coupled to various points on a body of the fire truck to track a position of the ladder during operation. In another example, tag202may be coupled to a lift device (e.g., a fork assembly) of a refuse collection vehicle and anchors204may be coupled to various points on a body of the refuse vehicle to track a position of the lift device while engaging and lifting a refuse container. In this manner, system300may advantageously improve position tracking for a number of different types of equipment contemplated herein, and thus the examples provided (e.g., relating to lift device10) are not intended to be limiting.

In the example shown inFIG.3, system300includes four of anchors204and one tag202. However, it should be understood that system300may include any suitable number of tags202and anchors204. As described briefly above, tag202may be configured to broadcast (i.e., transmit) a first wireless signal, generally between 3.1 and 10.6 GHz. Each anchor204may detect (i.e., receive) the first wireless signal and may, in turn, broadcast (i.e., transmit) a second wireless signal (or vice versa). In some embodiments, the first and/or second wireless signals can include a variety of metadata associated with the broadcasting device. For example, the first wireless signal broadcast by tag202may include metadata associated with tag202, such as an identifier (e.g., a string) for tag202and/or a time stamp that the first wireless signal was broadcast. Likewise, the second wireless signals broadcast by anchors204may include identifiers for each of anchors204and/or time stamps that the respective second wireless signals were broadcast.

In some embodiments, tag202detects (i.e., receives) the second wireless signals from anchors204and determines a time delay, either between the transmission of the first wireless signal and the receipt (e.g., by tag202) of the second wireless signal or based on a time stamp associated with the second wireless signal. For example, tag202may record a time when the first wireless signal is broadcast and may compare this time to a time that a second wireless signal is received back from each of anchors204to determine the time delay (i.e., loopback time). In another example, tag202may simply calculate a time delay by determining an amount of time between a timestamp included as metadata in the second wireless signal and the time of receipt by tag202.

In either case, the time delay may be utilized, in combination with a propagation speed of the wireless signals, to calculate a distance between tag202and each of anchors204. Accordingly, the propagation speed of each of the first and second wireless signals may be fixed and/or known, such as based on the particular wavelength (e.g., within the UWB spectrum) that tag202and anchors204are configured to transmit. For example, distance may be calculated as:

where d is a distance between tag202and one of anchors204, t is the time delay, and v is the velocity (i.e., speed) of the wireless signal, which can be determined based on the frequency of the wireless signal.

In the example shown, there is (i) a 3 nanosecond (ns) delay between “Anchor 1” and tag202and (ii) a 4 ns delay between “Anchor 2” and tag202. Thus, it can be determined that “Anchor 1” is closer to tag202than “Anchor 2.” Based on the time delay and a known propagation speed of the wireless signals (e.g., the speed of light through air), the distance between (i) tag202and “Anchor 1” and (ii) tag202and “Anchor 2” can be determined. For example, at 3.1 GHz (e.g., the lower end of the UWB spectrum), a 3 ns delay would indicate that “Anchor 1” is approximately 0.899 meters from tag202, while a 4 ns delay would indicate that “Anchor 2” is approximately 1.199 meters from tag202.

As discussed briefly above, in some embodiments, a position of each of anchors204may be fixed and known. For example, the exactly position of each of anchors204on lift device10may be recorded when anchors204are coupled to lift device10. Thus, based on the distance between tag202and each of anchors204, and the known positions of anchors204, a position of tag202can be determined. In particular, system300may include at least three of anchors204in order to triangulate the position of tag202based on the positions of anchors204. For example, the position of each anchor204may be recorded as x, y, and z coordinates in a 3-dimensional (3D) space, with respect to a reference coordinate (e.g., 0,0,0), and thus the position of tag202may be expressed as a position (x,y,z) in the same 3D space.

Referring now toFIG.4, a block diagram of a controller400utilized in system300is shown, according to some embodiments. Accordingly, in some embodiments, controller400may be similar to or the same as controller38, described above. In other embodiments, controller400is a secondary and/or separate controller from controller38. For example, controller38may be configured to generate control signals for the various motors, actuators, etc., of lift device10, while controller400may be configured to determine a position of an implement (e.g., implement16) supported by lift device10. In some other embodiments, controller400may be implemented within a tag202and/or anchor204of system300, as described above. In any case, controller400may also be configured to determine the position of an implement (e.g., implement16) supported by lift device10.

Controller400is shown to include a processing circuit or unit402, which includes a processor404and memory410. It will be appreciated that these components can be implemented using a variety of different types and quantities of processors and memory. For example, processor404can be a general purpose processor, an application specific integrated circuit (ASIC), one or more field programmable gate arrays (FPGAs), a group of processing components, or other suitable electronic processing components. Processor404can be communicatively coupled to memory410. While processing unit402is shown as including one processor404and one memory410, it should be understood that, as discussed herein, a processing unit and/or memory may be implemented using multiple processors and/or memories in various embodiments. All such implementations are contemplated within the scope of the present disclosure.

Memory410can include one or more devices (e.g., memory units, memory devices, storage devices, etc.) for storing data and/or computer code for completing and/or facilitating the various processes described in the present disclosure. Memory410can include random access memory (RAM), read-only memory (ROM), hard drive storage, temporary storage, non-volatile memory, flash memory, optical memory, or any other suitable memory for storing software objects and/or computer instructions. Memory410can include database components, object code components, script components, or any other type of information structure for supporting the various activities and information structures described in the present disclosure. Memory410can be communicably connected to processor404via processing unit402and can include computer code for executing (e.g., by processor404) one or more processes described herein.

Memory410is shown to include an anchor manager412configured to manage registration of one or more anchors, such as anchors436(e.g., anchors204) described in detail below. In particular, anchor manager412may be configured to record, store, and/or retrieve position data and other metadata (e.g., a broadcast ID) associated with anchors436. In some embodiments, anchor manager412can store position information in an anchor/tag database420. For example, anchors436may be registered with controller400during installation on lift device10(e.g., when being coupled to lift device10) by recording, via a user interface (e.g., user interface442), a position of each anchor. In another example, each of anchors436may be scanned (e.g., wirelessly) via controller400or another device, and anchor manager412may record relevant metadata and position data.

In some embodiments, controller400can act as a reference point (e.g., coordinate 0,0,0 in a 3D space) with respect to anchors436. In such embodiments, anchor manager412may be configured to broadcast a first wireless signal to anchors436, causing anchors436to respond with a second wireless signal. Thus, the position of each of anchors436with respect to controller400may be automatically determined based on the time delay in receiving the second wireless signals. However, it will be appreciated that any other method of determining an initial position of anchors436may be utilized.

Memory410is also shown to include a position detection engine414configured to determine a position of an implement (e.g., implement16) and/or a lift assembly (e.g., lift assembly14) of lift device10. In other words, position detection engine414may be configured to analyze signal data received from tags434(e.g., tags202), described in greater detail below, and/or anchors436in order to track the position of implement16and/or a lift assembly14. For example, position detection engine414may receive data from tags434and/or anchors436indicating time intervals at which wireless signals were received. Accordingly, position detection engine414may be configured to perform various calculations using this wireless signal data to determine a time delay, and therefore a distance, between tags434and anchors436.

In some embodiments, position detection engine414is also configured to initiate position detection by causing tags434to transmit a signal, and/or by causing anchors436to transmit a signal. For example, position detection engine414may transmit a first signal to tags434and/or anchors436, causing tags434and/or anchors436to broadcast a second wireless signal. In some embodiments, position detection engine414may initiate position detection at a regular interval (e.g., every few seconds, every minute, every hour, etc.). In some such embodiments, the regular interval may be predefined or may be defined by a user (e.g., via user interface442which may be user interface20and/or user interface21).

In some embodiments, position detection engine414can also record a position of implement16and/or lift assembly14by storing a detected position in a movement database422. In some such embodiments, position detection engine414may store a detected position along with a time stamp of when the position was detected, thereby creating a log of implement16and/or lift assembly14movements over time. As discussed in greater detail below, position logs stored in movement database422can subsequently be referenced to identify an amount of time spent at each position (i.e., dwell time), a path taken to reach a working position, an amount of movement at a “fixed” position (e.g., unintentional movement due to external forces acting on lift assembly14and/or implement16; due system tolerances, faulty actuators, or other worn parts (i.e., system slack or slop); etc.), and other relevant data. In some embodiments, position detection engine414can also detect a type of implement (e.g., implement16) coupled to lift assembly14, such as by a broadcast ID of a tag coupled to the implement. For example, position detection engine414may detect the broadcast ID of a tag coupled to an implement and may compare it to known broadcast IDs (e.g., stored in a database) to identify a type (e.g., fork assembly, platform, etc.) or other information regarding the implement.

Memory410is also shown to include a limit manager416configured to limit operations of lift device10based on the determined position of an implement (e.g., implement16) and/or a lift assembly (e.g., lift assembly14). For example, limit manager416may be configured to transmit a control signal to lift device systems440(e.g., actuators of lift assembly14, prime movers, etc.) and/or a secondary controller (e.g., controller38) causing lift device10to limit or prevent movement of various components (e.g., lift assembly14, tractive elements82, etc.). In particular, limit manager416may determine that the position of implement16is in an undesirable position, or may determine that implement16is at risk of contacting an external structure (e.g., a telephone line, a wall, a tree, etc.), which may cause damage. In some embodiments, limit manager416may compare a position of implement16with a detected load weight (e.g., detected by other sensors438, such as weight sensors) to determine whether implement16is outside of a permitted operating zone based on the detected weight, as described in greater detail below with respect toFIGS.6A-6C.

In some embodiments, limit manager416can also detect whether implement16and/or lift assembly14is properly stowed prior to maneuvering lift device10. For example, limit manager416may determine whether implement16is in a predefined “stow” position and, if implement16is not in a stow position, may limit movement speed or prevent movement of lift device10altogether. In some embodiments, as mentioned above, a tag (e.g., tag202, tag434, etc.) may be coupled to an outrigger or other stability system of lift device10. In such embodiments, limit manager416can be configured to determine a position of each outrigger and can compare the position of each outrigger to a position of the other outriggers and/or body assembly12. In this manner, limit manager416may not only ensure that lift device10is level and/or stable, but may also be configured to determine a topography of the ground underneath lift device10to optimize a leveling algorithm or limit use of the lift assembly14based on the position of the outriggers or stability system.

Memory410is also shown to include an interface generator418configured to dynamically generate, modify, and/or update graphical user interfaces that present a variety of data. For example, interface generator418may be configured to generate graphical user interfaces for presentation on user interface442, user interface20, and/or user interface21. In some embodiments, interface generator418may be configured to generate a first set of interfaces for registering anchors436(e.g., recording a position and other metadata). In some embodiments, interface generator418may generate a limit interface for presentation via user interface20, indicating that implement16is outside of a permitted working area, is at risk of contacting an external structure, etc. Accordingly, it will be appreciated that any sort of graphical user interface may be generated by interface generator418.

Still referring toFIG.4, controller400may be configured to communicate with various external (i.e., remote) components via a communications interface430. Communications interface430can be or include wired or wireless communications interfaces (e.g., jacks, antennas, transmitters, receivers, transceivers, wire terminals, etc.) for conducting data communications with sensors432, lift device systems440, a user interface442, external systems444, and/or other external systems or devices. In some embodiments, communications via communications interface430may be direct (e.g., local wired or wireless communications) or via a communications network (e.g., a WAN, the Internet, a cellular network, etc.). For example, communications interface430can include an Ethernet card and port for sending and receiving data via an Ethernet-based communications link or network. In another example, communications interface430can include a Wi-Fi transceiver for communicating via a wireless communications network. In another example, communications interface430may include cellular or mobile phone communications transceivers. In some embodiment, communications interface430includes a wireless transceiver configured to operate in the UWB spectrum, in order to communicate with tags and anchors, as described in greater detail below.

As shown, controller400may communicate with a plurality of sensors432via communications interface430. Sensors432may include tags434(e.g., similar to or the same as tag202), anchors436(e.g., similar to or the same as anchors204), and other sensors438. Other sensors438may include any additional sensors that may be included on lift device10. For example, other sensors438may include limit switch, angle sensors, speed sensors, motion sensors, etc. In some embodiments, other sensors438include load/weight sensors configured to detect a weight of a load carried by lift device10. For example, load/weight sensors may detect the weight of implement16and/or any persons, equipment, or materials carried by implement16. In some embodiments, other sensors438include an inertial measurement unit (IMU) configured to detect a movement speed, orientation, etc., of implement16. In some such embodiments, the IMU and/or other sensors438may include, for example, accelerometers, gyroscopes, and magnetometers. Tags434and anchors438are described in greater detail below, with respect toFIGS.5A and5B.

Controller400may also communicate with lift device systems440, as described briefly above. Lift device systems440may include any of the mechanical or electrical systems described above with respect toFIGS.1A-2B. For example, lift device systems440may include controller38, configured to receive sensory input information from various sensors (e.g., other sensors438) of lift device10, user inputs from user interface20or user interface442(or any other user input device such as a key-start or a push-button start), etc., and to generate control signals for the various motors, actuators, etc., of lift device10to operate any of motors, actuators, electrically powered movers, etc., of lift device10.

User interface442, as mentioned above, may be include any component(s) that allows a user to interact with controller400and/or lift device10. In some embodiments, user interface442includes a screen for displaying information and/or graphics. In some such embodiments, user interface442may be a touchscreen capable of receiving user inputs. In some embodiments, user interface442includes a user input device such as a keypad, a keyboard, a mouse, a stylus, etc. Accordingly, in some embodiments, user interface442may be an HMI similar to, or the same as, user interface20and/or user interface21described above.

External systems444may include any additional systems or device, either part of lift device10or external to lift device10, which may communicate with controller400. In some embodiments, external systems444include a computing system (e.g., a server, a computer, etc.) located remotely from lift device10, which can track movement data (e.g., implement16positions and/or lift device10location) for lift device10. For example, external systems444may be a central computing system for an organization (e.g., a company) that owns and/or operates one or more lift devices10, and thus external systems444may track movement and operation data for each of the one or more lift devices. In some embodiments, external systems444can include a system for controlling a plurality of autonomous vehicles (e.g., drones). Accordingly, position data of lift device10and/or implement16may be transmitted to external systems444and utilized to control the movement (e.g., flight) of an autonomous vehicle to a current position of lift device10and/or implement16. For example, a drone may be programmed to fly to a position of implement16(e.g., a platform) to deliver supplies.

Referring now toFIGS.5A and5B, detailed block diagrams of tags434and anchors436are shown, according to some embodiments. As mentioned above, tags434and anchors436may be the same as, or similar to, tag202and anchors204described above, respectively. Accordingly, tags434and anchors436may each be configured to broadcast and receive wireless signals, particularly in the UWB spectrum between 3.1 GHz and 10.6 GHz. As described herein, the structure of tags434may also be substantially similar to, or the same as anchors436, and vice versa. For example, tags434and anchors436may be transceiver devices including the same or similar components, and may accordingly be configured as either a tag or an anchor by reprogramming the devices.

Turning first toFIG.5A, tag434is shown in greater detail. Tag434can include a processor502and a memory504. It will be appreciated that these components can be implemented using a variety of different types and quantities of processors and memory. For example, processor502can be a general purpose processor, an application specific integrated circuit (ASIC), one or more field programmable gate arrays (FPGAs), a group of processing components, or other suitable electronic processing components. Processor502can be communicatively coupled to memory504, such as via a processing unit (not shown). It should be understood that, as discussed herein, a processing unit and/or memory may be implemented using multiple processors and/or memories in various embodiments. All such implementations are contemplated within the scope of the present disclosure.

Memory504can include one or more devices (e.g., memory units, memory devices, storage devices, etc.) for storing data and/or computer code for completing and/or facilitating the various processes described in the present disclosure. Memory504can include random access memory (RAM), read-only memory (ROM), hard drive storage, temporary storage, non-volatile memory, flash memory, optical memory, or any other suitable memory for storing software objects and/or computer instructions. Memory504can include database components, object code components, script components, or any other type of information structure for supporting the various activities and information structures described in the present disclosure. In some embodiments, memory504can include computer code for executing (e.g., by processor502) one or more processes described herein.

Tag434is also shown to include a power supply506, configured to provide energy (e.g., electricity) to the components of tag434. In some embodiments, power supply506is a battery (e.g., alkaline, zinc, lithium, nickel-cadmium, etc.). For example, power supply506may include a removable and/or rechargeable battery or set of batteries. In other embodiments, power supply506may be connected to an external power source (e.g., batteries64, a generator, a solar panel, etc.). For example, power supply506may receive electricity from lift device10to power tag434.

Tag434is also shown to include a transceiver508configured to broadcast (i.e., transmit) and receive wireless (e.g., radio frequency (RF)) signals. In some embodiments, tag434itself is a transceiver, and thus transceiver508may not be a separate component. However, transceiver508is described separately herein for clarity. Transceiver508may be configured to operate between 3.1 and 10.6 GHz (e.g., UWB), in some cases, but may also be configured to operate in other frequency bands. In some embodiments, tag434can include multiple transceivers508, where each different transceiver508can operate in a different frequency band. For example, a first transceiver may operate over the entire UWB spectrum, while a second transceiver may operate in higher or lower spectrums for other types of communication (e.g.,433MHz for RFID, 26-50 GHz for 5G cellular communications, etc.). Accordingly, tag434may be configured to communicate with anchors436via short-range, UWB signals, and may communicate with other components (e.g., controller400) via a secondary frequency range (e.g., 4G or 5G cellular signals, Wi-Fi signals, etc.).

Turning now toFIG.5B, anchor436is shown in greater detail. As discussed above, in some embodiments, anchor436may be the same as or similar to tag434, and thus may include similar components to tag434. Specifically, anchor436can include a processor510and a memory512. It will be appreciated that these components can be implemented using a variety of different types and quantities of processors and memory. For example, processor510can be a general purpose processor, an application specific integrated circuit (ASIC), one or more field programmable gate arrays (FPGAs), a group of processing components, or other suitable electronic processing components. Processor510can be communicatively coupled to memory512, such as via a processing unit (not shown). It should be understood that, as discussed herein, a processing unit and/or memory may be implemented using multiple processors and/or memories in various embodiments. All such implementations are contemplated within the scope of the present disclosure.

Memory512can include one or more devices (e.g., memory units, memory devices, storage devices, etc.) for storing data and/or computer code for completing and/or facilitating the various processes described in the present disclosure. Memory512can include random access memory (RAM), read-only memory (ROM), hard drive storage, temporary storage, non-volatile memory, flash memory, optical memory, or any other suitable memory for storing software objects and/or computer instructions. Memory512can include database components, object code components, script components, or any other type of information structure for supporting the various activities and information structures described in the present disclosure. In some embodiments, memory512can include computer code for executing (e.g., by processor510) one or more processes described herein. Anchor436can also include a power supply514and a transceiver516similar to tag434.

As mentioned briefly above, in some embodiments, one or both of tag434and anchor436may include the various functions and components of controller400, as described above. For example, anchor436may be similar to or the same as controller400, while any additional anchors or tags (e.g., of system300) may have comparatively reduced functionality. In this manner, the cost and complexity of developing and implementing a separate controller device (e.g., controller400) may be avoided. Additionally, system300may be simplified by configuring one of tag434or anchor436to operate as controller400, without requiring a separate controller device.

Referring now toFIGS.6A-6C, diagrams illustrating position detection for lift device are shown, according to some embodiments. In particular, each ofFIGS.6A-6Cincludes a diagram showing a range of positions of an implement (e.g., implement16) and/or a lift assembly (e.g., lift assembly14) of lift device10. For example,FIG.6Ashows a number of positions that implement16can reach when lower lift arm32ais at a 68° angle with respect to ground.FIGS.6A-6Calso illustrate a first zone602and a second zone604, which represent positions that can be reached at various different loads (e.g., 600 pounds and 1000 pounds, respectively). In some embodiments, any ofFIGS.6A-6Cmay also represent user interfaces that can be presented via user interface442, user interface20, and/or user interface21.

Turning first toFIG.6A, first zone602includes a range of positions that implement16can reach when carrying a 600 pound (lb) load. If implement16is a platform, for example, this 600 lb load may include the weight of an operator and equipment. If implement16is another device, such as a fork assembly, this 600 lb load may include the weight of any materials (e.g., a pallet) being carried by the fork assembly. Likewise, second zone604includes a range of positions that implement16can reach when carrying a 1000 lb load. As shown, implement16may be permitted to reach slightly greater distances from a reference point (e.g., the base of lift device10) when carrying a lighter load. For example, first zone602extends to about 75 feet from base assembly12of lift device10at its farthest point, whereas second zone604extends about 69 feet from base assembly12.

Turning now toFIG.6B, a plurality of specific positions can be represented by points606. Points606may each represent a point in a 3D space, generally with respect to a reference point (e.g., base assembly12at point 0,0,0). In some embodiments, a position of implement16is detected at a working position (e.g., at only one point606). Accordingly, the working position of implement16may be represented as x, y, and z coordinates, although other methods of representing the location or position of implement16may also be utilized. Additionally, a path taken to reach a working position (x, y, z) can be represented by one or more points606. For example, each point606can represent a set of coordinates, and the change between coordinates (Δx, Δy, Δz) can be determined to represent the path and/or movements to reach the working position. Additionally, an amount of time spent at each position may be recorded.

In some embodiments, an “infinite” number of points606can be used to represent the positions of implement16. In such embodiments, as shown inFIG.6C, a map608of positions can be generated. Map608, similar to a heat map, may utilize varying colors, patterns, or other identifiers to indicate different positions or areas occupied by implement16. For example, a first color (e.g., red) or pattern may indicate positions that were occupied for greater amounts of time than other positions represented by a second color (e.g., green) or pattern. In this manner, map608may intuitively represent dwell times at any number of positions, and may also indicate an amount of movement at a fixed location.

Referring now toFIG.7, a flow diagram of a process700for tracking a position of an implement (e.g., implement16) supported by lift device10is shown, according to some embodiments. As shown, process700may be implemented by one or more of the components of system300and/or controller400, as described above. For example, certain steps of process700may be executed by a tag and/or anchor, while other steps may be executed by controller400. In some embodiments, such as where one of a tag or an anchor is configured to operate as controller400(i.e., where controller400is integrated into a tag or anchor), the steps shown as executed by a controller may instead be executed by a tag or an anchor. Accordingly, it will be appreciated that certain steps of process700may be optional and, in some embodiments, process700may be implemented using less than all of the steps.

At step702, a position of one or more anchors coupled to a lift device (e.g., lift device is recorded. As described above, the one or more anchors can include a first transceiver or a first set of transceivers configured as anchors (e.g., anchors436, anchors204, etc.). In this regard, the one or more anchors may be configured to transmit and receive wireless signals. In some embodiments, the anchor(s) are configured to operate in the UWB spectrum, between 3.1 and 10.6 GHz, as also described in detail above. The anchor(s) may be removably or fixedly coupled to one or more points of a base (e.g., base assembly12) of the lift device. In some embodiments, at least three anchors are coupled at three distinct positions of the lift device, to improve position detection accuracy in the following steps of process700.

In some embodiments, the position of the anchor(s) is recorded as coordinates (x,y,z) in a 3D space. In such embodiments, the initial position of the anchor(s) may be determined with respect to a central or reference point (0,0,0), which may be one or the anchors or another point on lift device10. In other embodiments, another method of determining the anchor(s) initial position may be used. For example, the position of each anchor may be recorded as geographical coordinates based on GPS data. In some embodiments, additional metadata associated with each anchor may also be recorded. For example, an identifier (e.g., a broadcast ID) may be recorded for each anchor, and thereby associated with the anchor's position. In this manner, the anchors and their positions may be easily identified.

At step704, a position tracking process is initiated. In some embodiments, the position tracking process is initiated by a controller (e.g., controller400). In such embodiments, the controller may transmit a control signal or a command to a second transceiver or set of transceivers configured as a tag (e.g., tags434), causing the tag(s) to initiate the tracking process. In other embodiments, the controller may transmit a control signal or a command to any of the anchors, causing the anchor(s) to initiate the tracking process.

In other embodiments, the position tracking process is initiated by the tag(s). As described above, the tag may be configured to transmit and receive wireless signals at a similar frequency to the anchor(s). Accordingly, in some embodiments, the tag is configured to operate in the UWB spectrum, between 3.1 and 10.6 GHz, as described in detail above. The tag may be removably or fixedly coupled to one or more points of the lift device to be tracked. In particular, the tag or tags may be coupled to an implement (e.g., implement16) carried by the lift device, and/or may be positioned at various points along the lift assembly. It will be appreciated that any number of tags may be included and these tags may be positioned at any point of the lift device for tracking.

At step706, the tag broadcasts a first wireless signal. As described above, the first wireless signal may be a short-range wireless signal. In some embodiments, “short-range” may refer to wireless signals broadcast in the UWB spectrum, as also described above. In some embodiments, the first wireless signal may include metadata associated with the tag, such as a broadcast ID of the tag and/or a time stamp associated with the broadcast of the first wireless signal. Subsequently, at step708, the one or more anchors may receive (e.g., detect) the first wireless signal. However, it may be appreciated that, in some embodiments where the position tracking process is initiated by an anchor, steps706and708may be optionally executed.

At step710, each of the one or more anchors broadcasts a second wireless signal, in response to receiving and/or analyzing the first wireless signal. Like the first wireless signal broadcast by the tag, the second wireless signals may be a short-range wireless signals (e.g., in the UWB spectrum). In some embodiments, each of the second wireless signals may include metadata associated with a respective anchor, such as a broadcast ID of the anchor and/or a time stamp associated with the broadcast of the second wireless signal. Subsequently, at step712, the tag receives (e.g., detects) the second wireless signal.

At step714, the tag transmits wireless signal metadata to a controller (e.g., controller400). As described above, the wireless signal metadata may include at least a broadcast ID associated with each anchor and a time stamp that a wireless signal was received from each of the anchors. In some embodiments, the wireless metadata may also include a time delay between when the first wireless signal was broadcast (e.g., by the tag) and when a second wireless signal was received (e.g., by the tag) from each anchor. In other embodiments, the time delay may be calculated by the controller at step716, described below.

At step716, a distance between each anchor (e.g., each of the second transceivers) and the tag (e.g., the first transceiver) is calculated based on a time delay associated with the first and/or second wireless signals. As mentioned above, a time delay can indicate an amount of time between when the first wireless signal was broadcast by the tag and when a second wireless signal was received by the tag from each anchor. Accordingly, a time delay may be calculated for each anchor. As described above with respect toFIG.3, the time delays may be utilized in combination with a propagation speed of the wireless signals (e.g., the speed of light), to calculate a distance between the tag and each anchor. For example, a distance may be calculated as a product of the velocity of the wireless signal and the time delay.

At step718, a position of the implement (e.g., implement16) is determined based on the calculated distances between the tag and the anchors. In some embodiments, the position of the implement may be triangulated based on the distance between the tag and at least three anchors, as described in greater detail above. In some embodiments, process700may be continuously or regularly executed to continuously update a position of the implement. For example, after the position of the implement is determined, process700may immediately, or after a predetermine time interval, proceed back to step704to reinitiate the position tracking process.

In some embodiments, additional data may also be utilized to determine a speed, position, angle, etc. of the implement. For example, an IMU may be coupled to the implement, as described above, and velocity or other movement data from the IMU may be analyzed along with the calculated distances (e.g., from step716) to provide a more accurate determination of the implement's position. Advantageously, determining an implement's position based by triangulation of UWB signals and/or other motion data may provide a more accurate measurement than other methods that utilize sensors such as limit switches, angle sensors, etc. Additionally, as described above, UWB signals may propagate through solid objects such as walls, providing an advantage over other RF signals operating outside of the UWB spectrum.

In some embodiments, the determined position of the implement can be utilized to perform one or more automated actions, such as initiating operation limiting processes. For example, it may be determined that the implement is outside of a permitted position based on a load carried by the implement. Accordingly, once the implement's position is determined, a controller may initiate limiting measures such as limiting movement of lift device10, lift assembly14, and/or implement16. In some embodiments, the limiting measures may also include presenting, via a user interface, an alert or notification that the implement is outside of a recommended operating zone or range. Thus, an operator can control lift device10to bring the implement back into the recommended range.

In some embodiments, position data for the implement may be recorded over time, to determine dwell times at various positions, the most frequent positions, etc. Accordingly, in some embodiments, recorded position data may enable autonomous or semi-autonomous operations of lift device10. For example, an implement may be automatically maneuvered to a working position and/or a previous position by continuously detecting the implement's position in space. In some embodiments, position data may also be useful in determining a quickest route (e.g., a set of maneuvers) to a desired position (e.g., a working position). Thus, the implement may be automatically maneuvered to the desired position much more quickly than by manual control.

In some embodiments, position data may also be shared (e.g., transmitted) with other external and/or remote systems and devices. For example, position data can be shared with a remote computing system to track lift device10usage and/or to ensure that certain measures are being followed. In some embodiments, position data may be shared with a drone delivery system, allowing a drone to determine a location of an implement (e.g., a platform) and subsequently fly to the implement, such as to delivery supplies, tools, etc. In some embodiments, position data is shared with other autonomous devices and/or systems for controlling autonomous devices (e.g., drones, autonomous lift devices, etc.). For example, position data may be shared with an autonomous scissor lift, such that the scissor lift can track and follow lift device10(e.g., to act as a “smart” trailer for carrying material). Additionally, position data may be useful in determining the most ideal and/or secure positions for an implement, such as based on a load weight.

Tool Position Tracking

Referring now toFIG.8, a block diagram of a system800(e.g., a tool tracking system; a tool, implement, and/or lift device tracking system; a “virtual toolbox”; etc.) for detecting a position of one or more tools (e.g., power tools, non-powered tools, to provide the “virtual toolbox,” etc.), an implement of a machine, and/or a lift assembly of the machine is shown, according to some embodiments. The system800can include one or more portable tools, shown as tools805, and a machine810. The tools805can include one or more tags815(e.g., that may be the same as or similar to the transceiver device100, the tags202, the tags434, etc.) coupled thereto. One or more tags815may additionally be coupled to the machine810(e.g., on an implement thereof, on a lift device thereof, etc.). The tools805may be or include power tools (e.g., a welder, a drill, an impact driver, a grinder, an electric sander, an electric saw, a chainsaw, an electric screwdriver, etc.) and/or non-powered tools (e.g., a wrench, a screwdriver, a handsaw, a ratchet or ratchet set, etc.). In some embodiments (e.g., when the tool805is a powered tool), the tool805can be coupled to and powered by a battery pack and the tag815can be coupled to the battery pack. As shown inFIG.8, the machine810includes an anchor820, an anchor825, an anchor830, and an anchor835(e.g., that may be the same as or similar to the anchors204, the anchors436, etc.). In some embodiments, the machine810is the lift device10. In some embodiments, the anchors820,825,830and835are coupled to the base assembly12of the lift device10. In some embodiments, the machine810is not the lift device10, but rather is another type of machine or vehicle (e.g., a concrete mixing vehicle, a ladder fire truck or apparatus, a crane (e.g., wrecker, IMT, etc.), a scissor lift, a front, rear, or side-loading refuse vehicle, a plow truck, a telehandler, a bucket truck, a construction machine, an agricultural machine, etc.

The tag815and the anchors820,825,830, and835can be configured to communicate via short-range wireless signals. In some embodiments, the tag815and the anchors820,825,830and835communicate in the UWB spectrum, between 3.1 and 10.6 GHZ. In some embodiments, the tag815and the anchors820,825,830and835can be configured to communicate in other frequency ranges. For example, the tag815and the anchors820,825,830, and835may be radio-frequency identification (RFID) tags (e.g., either passive or active), and thus may operate in any corresponding frequency bands (e.g., ultra-high frequency (UHF) RDIF operates around433MHZ). In any case, the system800may be configured to determine a position of the tag(s)815, and thereby any component(s) that the tag(s)815is(are) coupled to (e.g., one or more tools805, the implement16, the lift assembly14, etc.).

In the example shown inFIG.8, the system800includes the anchors820,825,830and835and one tag815. However, it should be understood that the system800may include any suitable number of tags (e.g., depending on the number of the tools805being monitored) and anchors. As described briefly above, the tag815may be configured to broadcast (i.e., transmit) a first wireless signal, generally between 3.1 and 10.6 GHz. The anchors820,825,830and835may detect (i.e., receive) the first wireless signal and may, in turn, broadcast (i.e., transmit) a second wireless signal (or vice versa). In some embodiments, the first and/or second wireless signals can include a variety of metadata associated with the broadcasting device. For example, the first wireless signal broadcast by the tag815may include metadata associated with the tag815, such as an identifier (e.g., a string, a unique ID, a tool identifier, a component identifier, etc.) for the tag815and/or a time stamp that the first wireless signal was broadcast. Likewise, the second wireless signals broadcast by the anchors820,825,830and835may include identifiers for each of the anchors820,825,830and835and/or time stamps that the respective second wireless signals were broadcast.

In some embodiments, the tag815detects (i.e., receives) the second wireless signals from the anchors820,825,830and835and determines a time delay, either between the transmission of the first wireless signal and the receipt (e.g., by the tag815) of the second wireless signal or based on a time stamp associated with the second wireless signal. For example, the tag815may record a time when the first wireless signal is broadcast and may compare this time to a time that a second wireless signal is received back from each of the anchors820,825,830and835to determine the time delay (i.e., loopback time). In another example, the tag815may simply calculate a time delay by determining an amount of time between a timestamp included as metadata in the second wireless signal and the time of receipt by the tag815.

In either case, the time delay may be utilized, in combination with a propagation speed of the wireless signals, to calculate a distance between the tag815and each of the anchors820,825,830and835. Accordingly, the propagation speed of each of the first and second wireless signals may be fixed and/or known, such as based on the particular wavelength (e.g., within the UWB spectrum) that the tag815and the anchors820,825,830and835are configured to transmit. For example, distance may be calculated as:

where d is a distance between the tag815and one of the anchors820,825,830and835, t is the time delay, and v is the velocity (i.e., speed) of the wireless signal, which can be determined based on the frequency of the wireless signal.

In the example shown, there is (i) a 3 nanosecond (ns) delay between the anchor820and the tag815and (ii) a 4 ns delay between the anchor825and the tag815. Thus, it can be determined that anchor820is closer to the tag815than the anchor825. Based on the time delay and a known propagation speed of the wireless signals (e.g., the speed of light through air), the distance between (i) the tag815and the anchor820and (ii) the tag815and the anchor825can be determined. For example, at 3.1 GHz (e.g., the lower end of the UWB spectrum), a 3 ns delay would indicate that the anchor820is approximately 0.899 meters from the tag815, while a 4 ns delay would indicate that the anchor825is approximately 1.199 meters from the tag815.

As discussed briefly above, in some embodiments, a position of each of the anchors820,825,830and835may be fixed and known. For example, the exact position of each of the anchors820,825,830and835on the machine810may be recorded when the anchors820,825,830and835are coupled to the machine810. Thus, based on the distance between the tag815and each of the anchors820,825,830and835, and the known positions of the anchors820,825,830and835, a position of the tag815can be determined. In particular, the system800may include at least three of the anchors820,825,830or835in order to triangulate the position of the tag815based on the positions of the anchors820,825,830or835. For example, the position of the anchors820,825,830and835204may be recorded as x, y, and z coordinates in a 3-dimensional (3D) space, with respect to a reference coordinate (e.g., 0,0,0), and thus the position of the tag815may be expressed as a position (x,y,z) in the same 3D space.

Referring now toFIG.9, a block diagram of a controller900utilized by the system800is shown, according to some embodiments. In some embodiments, the controller900is similar to or the same as the controller400, described above. In other embodiments, the controller900is a secondary and/or separate controller from the controller400. In some other embodiments, the controller900may be implemented within the tags815and/or the anchors820,825,830and835of the system800, as described above. In any case, the controller900may also be configured to determine the position of an implement (e.g., the implement16, etc.), a lift device (e.g., the lift assembly14, etc.), one or more of the tools805, and/or any other component to which a tag815may be coupled.

The controller900is shown to include a processing circuit or unit902, which includes a processor904and memory910. It will be appreciated that these components can be implemented using a variety of different types and quantities of processors and memory. For example, the processor904can be a general purpose processor, an application specific integrated circuit (ASIC), one or more field programmable gate arrays (FPGAs), a group of processing components, or other suitable electronic processing components. The processor904can be communicatively coupled to the memory910. While the processing unit902is shown as including one processor904and one memory910, it should be understood that, as discussed herein, a processing unit and/or memory may be implemented using multiple processors and/or memories in various embodiments. All such implementations are contemplated within the scope of the present disclosure.

The memory910can include one or more devices (e.g., memory units, memory devices, storage devices, etc.) for storing data and/or computer code for completing and/or facilitating the various processes described in the present disclosure. The memory910can include random access memory (RAM), read-only memory (ROM), hard drive storage, temporary storage, non-volatile memory, flash memory, optical memory, or any other suitable memory for storing software objects and/or computer instructions. The memory910can include database components, object code components, script components, or any other type of information structure for supporting the various activities and information structures described in the present disclosure. The memory910can be communicably connected to the processor904via the processing unit902and can include computer code for executing (e.g., by the processor904) one or more processes described herein.

The memory910is shown to include an anchor manager912configured to manage registration of one or more anchors, such as anchors936(e.g., the anchors820,825,830and/or835; anchors204; anchors436; etc.) described in detail below. In particular, the anchor manager912may be configured to record, store, and/or retrieve position data and other metadata (e.g., a broadcast ID) associated with the anchors936. In some embodiments, the anchor manager912can store position information in an anchor/tag database920. For example, the anchors936may be registered with the controller900during installation on the machine810(e.g., when being coupled to the machine810) by recording, via a user interface (e.g., user interface942), a position of each anchor. In another example, each of the anchors936may be scanned (e.g., wirelessly) via the controller900or another device, and the anchor manager912may record relevant metadata and position data.

In some embodiments, the controller900can act as a reference point (e.g., coordinate in a 3d space) with respect to the anchors936. In such embodiments, the anchor manager912may be configured to broadcast a first wireless signal to the anchors936, causing the anchors936to respond with a second wireless signal. Thus, the position of each of the anchors936with respect to the controller900may be automatically determined based on the time delay in receiving the second wireless signals. However, it will be appreciated that any other method of determining an initial position of the anchors936may be utilized.

The memory910is also shown to include a position detection engine914configured to determine a position of a tool (e.g., the tool805), an implement (e.g., the implement16), and/or a lift assembly (e.g., the lift assembly14) of the machine810. In other words, the position detection engine914may be configured to analyze signal data received from the tags934(e.g., the tags815, the transceiver device100, the tags202, the tags434, etc.), described in greater detail below, and/or the anchors936in order to track the position of the tool805and/or components of the machine810(e.g., the implement16, the lift assembly14, etc.). For example, the position detection engine914may receive data from the tags934and/or the anchors936indicating time intervals at which wireless signals were received. Accordingly, the position detection engine914may be configured to perform various calculations using this wireless signal data to determine a time delay, and therefore a distance, between the tags934and the anchors936.

In some embodiments, the position detection engine914is also configured to initiate position detection by causing the tags934to transmit a signal, and/or by causing the anchors936to transmit a signal. For example, the position detection engine914may transmit a first signal to the tags934and/or the anchors936, causing the tags934and/or the anchors936to broadcast a second wireless signal. In some embodiments, the position detection engine914may initiate position detection at a regular interval (e.g., every few seconds, every minute, every hour, etc.). In some such embodiments, the regular interval may be predefined or may be defined by a user (e.g., via a user interface942, which may be or be similar to the user interface20and/or the user interface21).

In some embodiments, the position detection engine914can also record a position of the tool805and/or components of the machine810(e.g., the implement16, the lift assembly14, etc.) by storing a detected position in a movement database922. In some such embodiments, the position detection engine914may store a detected position along with a time stamp of when the position was detected, thereby creating a log of the tool805movements and/or movements of components of the machine810over time. Position logs stored in the movement database922can subsequently be referenced to identify an amount of use of the tools805(and by whom), an amount of time spent at each position (i.e., dwell time), a path taken to reach a working position, an amount of movement at a “fixed” position (e.g., unintentional movement due to external forces acting on lift assembly14and/or implement16; due system tolerances, faulty actuators, or other worn parts (i.e., system slack or slop); etc.), and other relevant data. In some embodiments, the position detection engine914can also detect a type of the tool805, such as by a broadcast ID of a tag coupled to the tool805. For example, the position detection engine914may detect the broadcast ID of a tag coupled to a power tool and may compare it to known broadcast IDs (e.g., stored in a database) to identify a type (e.g., drill, saw, impact driver, etc.) or other information regarding the tool805.

The memory910is also shown to include a limit manager916configured to limit operations of lift device10based on the determined position of the tool805. For example, the limit manager916may be configured to transmit a control signal to lift device systems940(e.g., actuators of the lift assembly14, prime movers, etc.) and/or a secondary controller (e.g., the controller38) causing the machine810to limit or prevent movement of various components (e.g., the lift assembly14, the tractive elements82, etc.). In particular, the limit manager916may determine that the position of the tool805, and thereby the implement16and/or lift assembly14, is in an undesirable position (e.g., when the power tool805is positioned in or on the implement16, etc.). Therefore, the tags of the tools805may be used to replace or supplement any tags positioned on or about the machine810and the components thereof (e.g., the implement16, etc.).

The memory910is also shown to include an interface generator918configured to dynamically generate, modify, and/or update graphical user interfaces that present a variety of data. For example, the interface generator918may be configured to generate graphical user interfaces for presentation on a user interface (e.g., the user interface942, the user interface20, the user interface21, etc.). In some embodiments, the interface generator918may be configured to generate a first set of interfaces for registering the anchors936(e.g., recording a position and other metadata). In some embodiments, the interface generator918generates a limit interface for presentation via the user interface, indicating that tool805is outside of a permitted working area, etc. In some embodiments, the interface generator918generates a “virtual toolbox” interface identifying position/location and/or type of one or more of the tools805(e.g., that have been registered, connected, paired, or somehow associated to the machine810) relative to the machine810(e.g., in or on the implement16, on the ground, in another vehicle or machine, out of range or offsite, etc.). Accordingly, it will be appreciated that any sort of graphical user interface may be generated by the interface generator918. In some embodiments, the tools805being tracked or monitored may be based on the operator of the machine810(e.g., the controller900only tracks the tools805owned or associated with a current operator of the machine810, based on operator credentials entered into or acquired by the machine810, etc.).

Still referring toFIG.9, the controller900may be configured to communicate with various external (i.e., remote) components via a communications interface930. Communications interface930can be or include wired or wireless communications interfaces (e.g., jacks, antennas, transmitters, receivers, transceivers, wire terminals, etc.) for conducting data communications with one or more sensors932, the lift device systems940, the user interface942, one or more external systems944, and/or other external systems or devices. In some embodiments, communications via communications interface930may be direct (e.g., local wired or wireless communications) or via a communications network (e.g., a WAN, the Internet, a cellular network, etc.). For example, the communications interface930can include an Ethernet card and port for sending and receiving data via an Ethernet-based communications link or network. In another example, the communications interface930can include a Wi-Fi transceiver for communicating via a wireless communications network. In another example, the communications interface930may include cellular or mobile phone communications transceivers. In some embodiment, the communications interface930includes a wireless transceiver configured to operate in the UWB spectrum, in order to communicate with tags and anchors, as described in greater detail below.

As shown, the controller900may communicate with the sensors932via the communications interface930. Sensors932may include the tags934(e.g., similar to or the same as the tags815, the transceiver device100, the tags202, the tags434, etc.), the anchors936(e.g., similar to or the same as the anchors820,825,830or835; the anchors204; the anchors436; etc.), and other sensors938. The other sensors938may include any additional sensors that may be included on the machine810. For example, the other sensors938may include limit switch, angle sensors, speed sensors, motion sensors, etc. In some embodiments, the other sensors938include load/weight sensors configured to detect a weight of a load carried by the machine810. For example, load/weight sensors may detect the weight of the implement16and/or any persons, equipment, or materials carried by the implement16. In some embodiments, the other sensors938include an inertial measurement unit (IMU) configured to detect a movement speed, orientation, etc., of the implement16and/or the lift assembly14. In some such embodiments, the IMU and/or the other sensors938may include, for example, accelerometers, gyroscopes, and magnetometers.

The controller900may also communicate with the lift device systems940, as described briefly above. The lift device systems940may include any of the mechanical or electrical systems described above with respect toFIGS.1A-2B. For example, the lift device systems940may include the controller38, configured to receive sensory input information from various sensors (e.g., the other sensors938) of the machine810, user inputs from the user interface942(or any other user input device such as a key-start or a push-button start), etc., and to generate control signals for the various motors, actuators, etc., of the machine810to operate any of motors, actuators, electrically powered movers, etc., of the machine810.

The user interface942, as mentioned above, may include any component(s) that allows a user to interact with the controller900and/or the machine810. In some embodiments, the user interface942includes a screen for displaying information and/or graphics. In some such embodiments, the user interface942may be a touchscreen capable of receiving user inputs. In some embodiments, the user interface942includes a user input device such as a keypad, a keyboard, a mouse, a stylus, etc. In some embodiments, the user interface942includes a portable device (e.g., a user device, a smartphone, a tablet, a laptop, etc.). Accordingly, in some embodiments, the user interface942may be an HMI similar to, or the same as, the user interface20and/or the user interface21described above.

The external systems944may include any additional systems or device, either part of the machine810or external to the machine810, which may communicate with the controller900. In some embodiments, the external systems944include a computing system (e.g., a server, a computer, etc.) located remotely from the machine810, which can track movement data (e.g., tool805positions and/or the location of the machine810) for the machine810and/or the tools805. For example, the external systems944may be a central computing system for an organization (e.g., a company) that owns and/or operates one or more of the machines810, and thus the external systems944may track movement and operation data for each of the one or more machines810and/or the tools805. In some embodiments, the external systems944can include a system for controlling a plurality of autonomous vehicles (e.g., drones). Accordingly, position data of the tools805and/or the machine810may be transmitted to the external systems944and utilized to control the movement (e.g., flight) of an autonomous vehicle to a current position of the machine810and/or the tool(s)805. For example, a drone may be programmed to fly to a position of a respective tool805to (i) deliver supplies to an operator proximate the respective tool805and/or (ii) to retrieve the respective tool805and deliver the respective tool805to the operator at a different position (e.g., the operator may be up in the air in the implement16and forgot the respective tool805on the ground, thereby preventing a need for the operator to control the machine810to lower him or her back to the ground to retrieve the respective tool805).

Referring now toFIG.10, a flow diagram of a process1000for tracking a position of tool (e.g., the tools805) and/or components of a machine (e.g., the machine810, the lift device the implement16, the lift assembly14, etc.) is shown, according to some embodiments. The process1000may be implemented by one or more of the components of the system800and/or the controller900, as described above. For example, certain steps of the process1000may be executed by a tag and/or anchor, while other steps may be executed by the controller900. In some embodiments, such as where one of a tag or an anchor is configured to operate as the controller900(i.e., where the controller900is integrated into a tag or anchor), the steps shown as executed by a controller may instead be executed by a tag or an anchor. Accordingly, it will be appreciated that certain steps of process1000may be optional and, in some embodiments, process1000may be implemented using less than all of the steps.

At step1002, a position of one or more anchors coupled to a machine (e.g., the lift device10, the machine810, etc.) is recorded. As described above, the one or more anchors can include a first transceiver or a first set of transceivers configured as anchors (e.g., the anchors936, the anchors436, the anchors204, the anchors820-835, etc.). In this regard, the one or more anchors may be configured to transmit and receive wireless signals. In some embodiments, the anchor(s) are configured to operate in the UWB spectrum, between 3.1 and 10.6 GHz, as also described in detail above. The anchor(s) may be removably or fixedly coupled to one or more points of a base (e.g., the base assembly12) of the machine. In some embodiments, at least three anchors are coupled at three distinct positions of the machine, to improve position detection accuracy in the following steps of process1000.

In some embodiments, the position of the anchor(s) is recorded as coordinates (x,y,z) in a 3d space. In such embodiments, the initial position of the anchor(s) may be determined with respect to a central or reference point (0,0,0), which may be one or the anchors or another point on the machine. In other embodiments, another method of determining the anchor(s) initial position may be used. For example, the position of each anchor may be recorded as geographical coordinates based on GPS data. In some embodiments, additional metadata associated with each anchor may also be recorded. For example, an identifier (e.g., a broadcast ID) may be recorded for each anchor, and thereby associated with the anchor's position. In this manner, the anchors and their positions may be easily identified.

At step1004, a position tracking process is initiated. In some embodiments, the position tracking process is initiated by a controller (e.g., the controller900). In such embodiments, the controller may transmit a control signal or a command to a second transceiver or set of transceivers configured as a tag (e.g., the tags934, the tags815, the tags434, the tags202, the transceiver device100, etc.), causing the tag(s) to initiate the tracking process. In other embodiments, the controller may transmit a control signal or a command to any of the anchors, causing the anchor(s) to initiate the tracking process.

In other embodiments, the position tracking process is initiated by the tag(s). As described above, the tag(s) may be configured to transmit and receive wireless signals at a similar frequency to the anchor(s). Accordingly, in some embodiments, the tag(s) is(are) configured to operate in the UWB spectrum, between 3.1 and 10.6 GHz, as described in detail above. The tag(s) may be removably or fixedly coupled to one or more tools (e.g., the tools805) and/or components of the machine (e.g., the implement16, the lift assembly14, etc.) to be tracked. It will be appreciated that any number of tags may be included and these tags may be coupled to one or more tools and/or components of the machine for tracking.

At step1006, the tag broadcasts a first wireless signal. As described above, the first wireless signal may be a short-range wireless signal. In some embodiments, “short-range” may refer to wireless signals broadcast in the UWB spectrum, as also described above. In some embodiments, the first wireless signal may include metadata associated with the tag, such as a broadcast ID of the tag and/or a time stamp associated with the broadcast of the first wireless signal. Subsequently, at step1008, the one or more anchors may receive (e.g., detect) the first wireless signal. However, it may be appreciated that, in some embodiments where the position tracking process is initiated by an anchor, steps1006and1008may be optionally executed.

At step1010, each of the one or more anchors broadcasts a second wireless signal, in response to receiving and/or analyzing the first wireless signal. Like the first wireless signal broadcast by the tag, the second wireless signals may be a short-range wireless signals (e.g., in the UWB spectrum). In some embodiments, each of the second wireless signals may include metadata associated with a respective anchor, such as a broadcast ID of the anchor and/or a time stamp associated with the broadcast of the second wireless signal. Subsequently, at step1012, the tag receives (e.g., detects) the second wireless signal.

At step1014, the tag transmits wireless signal metadata to a controller (e.g., the controller900). As described above, the wireless signal metadata may include at least a broadcast ID associated with each anchor and a time stamp that a wireless signal was received from each of the anchors. In some embodiments, the wireless metadata may also include a time delay between when the first wireless signal was broadcast (e.g., by the tag) and when a second wireless signal was received (e.g., by the tag) from each anchor. In other embodiments, the time delay may be calculated by the controller at step1016, described below. In some embodiments, the wireless signal metadata includes a type identifier that identifies the type of tool or component to which the tag is coupled.

At step1016, a distance between each anchor (e.g., each of the second transceivers) and the tag (e.g., the first transceiver) is calculated based on a time delay associated with the first and/or second wireless signals. As mentioned above, a time delay can indicate an amount of time between when the first wireless signal was broadcast by the tag and when a second wireless signal was received by the tag from each anchor. Accordingly, a time delay may be calculated for each anchor. As described above with respect toFIG.8, the time delays may be utilized in combination with a propagation speed of the wireless signals (e.g., the speed of light), to calculate a distance between the tag and each anchor. For example, a distance may be calculated as a product of the velocity of the wireless signal and the time delay.

At step1018, a position of a tool (e.g., tool805) and/or component of the machine is determined based on the calculated distances between the tag and the anchors. In some embodiments, the position of the tool and/or component of the machine may be triangulated based on the distance between the tag and at least three anchors, as described in greater detail above. In some embodiments, the process1000may be continuously or regularly executed to continuously update a position of the tool and/or the component of the machine. For example, after the position of the tool and/or component of the machine is determined, the process1000may immediately, or after a predetermined time interval, proceed back to step1004to reinitiate the position tracking process.

Referring now toFIGS.11A and11B, detailed block diagrams of the tags934and the anchors936are shown, according to some embodiments. As mentioned above, the tags934and the anchors936may be the same as, or similar to, the tags815, the tags434, the tags202, and/or the transceiver device100, and the anchors820-835, the anchors836, the anchors436, and/or the anchors204described above, respectively. Accordingly, the tags934and the anchors936may each be configured to broadcast and receive wireless signals, particularly in the UWB spectrum between 3.1 GHz and 10.6 GHz. As described herein, the structure of the tags934may also be substantially similar to, or the same as the anchors936, and vice versa. For example, the tags934and the anchors936may be transceiver devices including the same or similar components, and may accordingly be configured as either a tag or an anchor by reprogramming the devices.

Turning first toFIG.11A, the tag934is shown in greater detail. The tag934can include a processor1102and a memory1104. It will be appreciated that these components can be implemented using a variety of different types and quantities of processors and memory. For example, the processor1102can be a general purpose processor, an application specific integrated circuit (ASIC), one or more field programmable gate arrays (FPGAs), a group of processing components, or other suitable electronic processing components. The processor1102can be communicatively coupled to the memory1104, such as via a processing unit (not shown). It should be understood that, as discussed herein, a processing unit and/or memory may be implemented using multiple processors and/or memories in various embodiments. All such implementations are contemplated within the scope of the present disclosure.

The memory1104can include one or more devices (e.g., memory units, memory devices, storage devices, etc.) for storing data and/or computer code for completing and/or facilitating the various processes described in the present disclosure. The memory1104can include random access memory (RAM), read-only memory (ROM), hard drive storage, temporary storage, non-volatile memory, flash memory, optical memory, or any other suitable memory for storing software objects and/or computer instructions. The memory1104can include database components, object code components, script components, or any other type of information structure for supporting the various activities and information structures described in the present disclosure. In some embodiments, the memory1104can include computer code for executing (e.g., by the processor1102) one or more processes described herein.

The tag934is also shown to include a power supply1106, configured to provide energy (e.g., electricity) to the components of tag934. In some embodiments, the power supply1106is a battery (e.g., alkaline, zinc, lithium, nickel-cadmium, etc.). For example, power supply1106may include a removable and/or rechargeable battery or set of batteries. In other embodiments, the power supply1106may be or be connected to an external power source (e.g., a battery pack of the tool805, batteries64, a generator, a solar panel, etc.).

The tag934is also shown to include a transceiver1108configured to broadcast (i.e., transmit) and receive wireless (e.g., radio frequency (RF)) signals. In some embodiments, the tag934itself is a transceiver, and thus the transceiver1108may not be a separate component. However, the transceiver1108is described separately herein for clarity. The transceiver1108may be configured to operate between 3.1 and 10.6 GHz (e.g., UWB), in some cases, but may also be configured to operate in other frequency bands. In some embodiments, the tag934can include multiple transceivers1108, where each different transceiver1108can operate in a different frequency band. For example, a first transceiver may operate over the entire UWB spectrum, while a second transceiver may operate in higher or lower spectrums for other types of communication (e.g.,433MHz for RFID, 26-50 GHz for 5G cellular communications, etc.). Accordingly, the tag934may be configured to communicate with the anchors936via short-range, UWB signals, and may communicate with other components (e.g., the controller900) via a secondary frequency range (e.g., 4G or 5G cellular signals, Wi-Fi signals, etc.).

Turning now toFIG.11B, the anchor936is shown in greater detail. As discussed above, in some embodiments, the anchor936may be the same as or similar to the tag934, and thus may include similar components to the tag934. Specifically, the anchor936can include a processor1110and a memory1112. It will be appreciated that these components can be implemented using a variety of different types and quantities of processors and memory. For example, the processor1110can be a general purpose processor, an application specific integrated circuit (ASIC), one or more field programmable gate arrays (FPGAs), a group of processing components, or other suitable electronic processing components. The processor1110can be communicatively coupled to the memory1112, such as via a processing unit (not shown). It should be understood that, as discussed herein, a processing unit and/or memory may be implemented using multiple processors and/or memories in various embodiments. All such implementations are contemplated within the scope of the present disclosure.

The memory1112can include one or more devices (e.g., memory units, memory devices, storage devices, etc.) for storing data and/or computer code for completing and/or facilitating the various processes described in the present disclosure. The memory1112can include random access memory (RAM), read-only memory (ROM), hard drive storage, temporary storage, non-volatile memory, flash memory, optical memory, or any other suitable memory for storing software objects and/or computer instructions. The memory1112can include database components, object code components, script components, or any other type of information structure for supporting the various activities and information structures described in the present disclosure. In some embodiments, the memory1112can include computer code for executing (e.g., by the processor1110) one or more processes described herein. The anchor936can also include a power supply1114and a transceiver1116similar to the tag934.

As mentioned briefly above, in some embodiments, one or both of the tag934and the anchor936may include the various functions and components of the controller900, as described above. For example, the anchor936may be similar to or the same as the controller900, while any additional anchors or tags (e.g., of the system800) may have comparatively reduced functionality. In this manner, the cost and complexity of developing and implementing a separate controller device (e.g., the controller900) may be avoided. Additionally, the system800may be simplified by configuring one of the tag934or the anchor936to operate as the controller900, without requiring a separate controller device.