IP Library Granted Patent US 12,223,124
Granted Patent B2
US 12,223,124 · App. 18/311,370 · Granted Feb 11, 2025

Inertially isolated spatial control

Inventors: Michael E. Bowman (Satellite Beach, FL); William S. Bowman (Melbourne, FL); Daniel R. Hedman (Palm Bay, FL); Matthew D. Summer (Melbourne, FL); Andrew D. Falendysz (Grant, FL); Kevin Makovy (West Melbourne, FL); Michael W. Holt (Smyrna, GA)
Assignee: Tomahawk Robotics, Inc.
G06F3/0346G05D1/0016G05D1/0038
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,223,124
App. No.
18/311,370
Granted
Feb 11, 2025
Kind
B2
Abstract

Methods and systems are described herein for detecting motion-induced errors received from inertial-type input devices and for generating accurate vehicle control commands that account for operator movement. These methods and systems may determine, using motion data from inertial sensors, whether the hand/arm of the operator is moving in the same motion as the body of the operator, and if both are moving in the same way, these systems and methods may determine that the motion is not intended to be a motion-induced command. However, if the hand/arm of the operator is moving in a different motion from the body of the operator, these methods and systems may determine that the operator intended the motion to be a motion-induced command to a vehicle.

Claims (76)

1. A system for detecting motion-induced errors received from inertial-type input devices, the system comprising:

one or more processors; and

a non-transitory computer-readable storage medium storing instructions which, when executed by the one or more processors, cause the one or more processors to perform operations comprising:

receiving, from a controller, first motion data, wherein the first motion data comprises a first acceleration and a first angular velocity;

determining that the first motion data corresponds to a candidate motion-induced command;

receiving, from an inertial sensor, second motion data, wherein the second motion data comprises a second acceleration and a second angular velocity;

determining, based on comparing the first acceleration from the controller with the second acceleration from the inertial sensor, and the first angular velocity from the controller with the second angular velocity from the inertial sensor, whether the first motion data matches the second motion data; and

based on determining that the first motion data does not match the second motion data:

generating a third acceleration based on subtracting the second acceleration from the first acceleration;

generating a third angular velocity based on subtracting the second angular velocity from the first angular velocity;

generating a motion-induced command based on the third acceleration and the third angular velocity; and

transmitting the motion-induced command to one or more vehicles.

2. The system of claim 1 , wherein the instructions further cause the one or more processors to perform operations comprising:

based on determining that the first motion data matches the second motion data:

determining that the candidate motion-induced command corresponds to a motion-induced error; and

refraining from transmitting the candidate motion-induced command to the one or more vehicles.

3. The system of claim 1 , wherein the inertial sensor is being worn by an operator and wherein the second acceleration is torso acceleration of the operator, and the second angular velocity is torso angular velocity of the operator.

4. The system of claim 1 , wherein the instructions when executed by the one or more processors, further cause the one or more processors to perform operations comprising:

determining that the first acceleration meets an acceleration threshold or the first angular velocity meets an angular velocity threshold;

based on determining that the first acceleration meets the acceleration threshold or the first angular velocity meets the angular velocity threshold, stopping detection of new motion-induced commands from the controller;

generating for display on the controller a selectable option to enable detecting the new motion-induced commands; and

in response to receiving a selection of the selectable option, enabling the detection of the new motion-induced commands.

5. A method comprising:

receiving, from a controller, first motion data, wherein the first motion data comprises a first acceleration and a first angular velocity;

determining that the first motion data corresponds to a candidate motion-induced command;

receiving, from an inertial sensor, second motion data, wherein the second motion data comprises a second acceleration and a second angular velocity;

determining, based on comparing the first acceleration from the controller with the second acceleration from the inertial sensor, and the first angular velocity from the controller with the second angular velocity from the inertial sensor, whether the first motion data matches the second motion data; and

based on determining that the first motion data does not match the second motion data:

generating a third acceleration based on subtracting the second acceleration from the first acceleration;

generating a third angular velocity based on subtracting the second angular velocity from the first angular velocity;

generating a motion-induced command based on the third acceleration and the third angular velocity; and

transmitting the motion-induced command to one or more vehicles.

6. The method of claim 5 , further comprising, based on determining that the first motion data matches the second motion data:

determining that the candidate motion-induced command corresponds to a motion-induced error; and

refraining from transmitting the candidate motion-induced command to the one or more vehicles.

7. The method of claim 5 , wherein the inertial sensor is being worn by an operator and wherein the second acceleration is torso acceleration of the operator, and the second angular velocity is torso angular velocity of the operator.

8. The method of claim 5 , further comprising:

determining that the first acceleration meets an acceleration threshold or the first angular velocity meets an angular velocity threshold; and

based on determining that the first acceleration meets the acceleration threshold or the first angular velocity meets the angular velocity threshold, stopping detection of new motion-induced commands from the controller.

9. The method of claim 8 , further comprising:

generating for display on the controller a selectable option to enable detecting the new motion-induced commands; and

in response to receiving a selection of the selectable option, enabling the detection of the new motion-induced commands.

10. The method of claim 5 , wherein the controller comprises a second inertial sensor and detects motion-induced commands to control the one or more vehicles, and wherein the second inertial sensor generates measurements of acceleration and angular velocity of the controller.

11. The method of claim 5 , wherein the inertial sensor is attached to a vehicle an operator is riding and wherein the second acceleration is vehicle acceleration of the vehicle and the second angular velocity is vehicle angular velocity of the vehicle.

12. The method of claim 5 , wherein determining, based on the first acceleration, the second acceleration, the first angular velocity, and the second angular velocity, that the first motion data matches the second motion data comprises:

generating an acceleration difference based on subtracting the second acceleration from the first acceleration;

generating an angular velocity difference based on subtracting the second angular velocity from the first angular velocity;

determining that the acceleration difference does not meet an acceleration threshold and the angular velocity difference does not meet an angular velocity threshold; and

based on determining that the acceleration difference does not meet the acceleration threshold and the angular velocity difference does not meet the angular velocity threshold, determining that the first motion data matches the second motion data.

13. A non-transitory, computer-readable medium comprising instructions for detecting motion-induced errors received from inertial-type input devices, that when executed by one or more processors, cause the one or more processors to perform operations comprising:

receiving, from a controller, first motion data associated with the controller;

determining that the first motion data corresponds to a candidate motion-induced command;

receiving, from an inertial sensor, second motion data associated with the inertial sensor;

determining whether the first motion data matches the second motion data; and

based on determining that the first motion data from the controller does not match the second motion data from the inertial sensor:

generating third motion data, wherein the third motion data is generated based on subtracting a component of the second motion data from a corresponding component of the first motion data;

generating a motion-induced command based on the third motion data; and

providing the motion-induced command to one or more vehicles.

14. The non-transitory, computer-readable medium of claim 13 , wherein the first motion data comprises a first acceleration and a first angular velocity and the second motion data comprises a second acceleration and a second angular velocity.

15. The non-transitory, computer-readable medium of claim 14 , wherein the instructions for determining, based on the first acceleration, the second acceleration, the first angular velocity, and the second angular velocity, that the first motion data matches the second motion data further cause the one or more processors to perform operations comprising:

generating an acceleration difference based on subtracting the second acceleration from the first acceleration;

generating an angular velocity difference based on subtracting the second angular velocity from the first angular velocity;

determining that the acceleration difference does not meet an acceleration threshold and the angular velocity difference does not meet an angular velocity threshold; and

based on determining that the acceleration difference does not meet the acceleration threshold and the angular velocity difference does not meet the angular velocity threshold, determining that the first motion data matches the second motion data.

16. The non-transitory, computer-readable medium of claim 14 , wherein the instructions for generating the motion-induced command further cause the one or more processors to perform operations comprising:

generating a third acceleration based on subtracting the second acceleration from the first acceleration;

generating a third angular velocity based on subtracting the second angular velocity from the first angular velocity; and

generating the motion-induced command based on the third acceleration and the third angular velocity.

17. The non-transitory, computer-readable medium of claim 14 , wherein the instructions further cause the one or more processors to perform operations comprising:

determining that the first acceleration meets an acceleration threshold or the first angular velocity meets an angular velocity threshold; and

based on determining that the first acceleration meets the acceleration threshold or the first angular velocity meets the angular velocity threshold, stopping detection of new motion-induced commands from the controller.

18. The non-transitory, computer-readable medium of claim 17 , wherein the instructions further cause the one or more processors to perform operations comprising:

generating for display on the controller a selectable option to enable detecting the new motion-induced commands; and

in response to receiving a selection of the selectable option, enabling the detection of the new motion-induced commands.

19. The non-transitory, computer-readable medium of claim 13 , wherein the controller comprises a second inertial sensor and receives motion-induced commands to control the one or more vehicles, and wherein the second inertial sensor generates measurements of acceleration and angular velocity of the controller.

20. The non-transitory, computer-readable medium of claim 13 , wherein the inertial sensor is attached to a vehicle an operator is riding and wherein the second motion data is vehicle motion data.

Assignments (4)
CORRECTIVE ASSIGNMENT TO CORRECT THE 5TH INVENTOR'S EXECUTION DATE PREVIOUSLY RECORDED AT REEL: 65837 FRAME: 135. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT . Recorded Jan 3, 2025
From: BOWMAN, MICHAEL E.; BOWMAN, WILLIAM S.; HEDMAN, DANIEL R.; SUMMER, MATTHEW D.; FALENDYSZ, ANDREW D.; MAKOVY, KEVIN; HOLT, MICHAEL W.
To: TOMAHAWK ROBOTICS, INC.
Reel/Frame 069848/0588 →
CORRECTIVE ASSIGNMENT TO CORRECT THE THE ASSIGNEE NAME PREVIOUSLY RECORDED AT REEL: 064618 FRAME: 0607. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Dec 8, 2023
From: BOWMAN, MICHAEL E.; BOWMAN, WILLIAM S.; HEDMAN, DANIEL R.; SUMMER, MATTHEW D.; FALENDYSZ, ANDREW D.; MAKOVY, KEVIN; HOLT, MICHAEL W.
To: TOMAHAWK ROBOTICS, INC.
Reel/Frame 065837/0135 →
NOTICE OF GRANT OF SECURITY INTEREST IN PATENTS Recorded Oct 30, 2023
From: TOMAHAWK ROBOTICS, INC.
To: BANK OF AMERICA, N.A., AS THE ADMINISTRATIVE AGENT
Reel/Frame 065394/0847 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 17, 2023
From: BOWMAN, MICHAEL E.; BOWMAN, WILLIAM S.; HEDMAN, DANIEL R.; SUMMER, MATTHEW D.; FALENDYSZ, ANDREW D.; MAKOVY, KEVIN; HOLT, MICHAEL W.
To: TOMAHAWK ROBOTICS
Reel/Frame 064618/0607 →
Continuity (2)
Continuation 17720130 · Apr 13, 2022
Related Publication 20230333671A1 · Oct 19, 2023
References Cited (4)
US 10152052B1 · Lu · 2018 [cited by applicant]
US 20180114058A1 · Kahn · 2018 [cited by examiner]
US 20230137198A1 · Naveh · 2023 [cited by examiner]
Extended European Search Report issued in correspondence European Patent Application No. 22192511.8 on May 15, 2023 (10 pages). [cited by applicant]