IP Library Granted Patent US 12,650,689
Granted Patent B2
US 12,650,689 · App. 17/571,305 · Granted Jun 9, 2026

Universal control architecture for control of unmanned systems

Inventors: Matthew D. Summer (Melbourne, FL); William S. Bowman (Melbourne, FL); Andrew D. Falendysz (Grant, FL); Daniel R. Hedman (Palm Bay, FL); Brad Truesdell (Indialantic, FL); Jeffrey S. Cooper (Centreville, VA); Michael E. Bowman (Satellite Beach, FL); Sean Wagoner (West Melbourne, FL); Kevin Makovy (West Melbourne, FL)
Assignee: Tomahawk Robotics, Inc.
G05D1/0027B62D1/283G05D1/0022G05D1/228G05D1/40G06F8/40G08G1/20G08G7/00G08G9/00G05D1/229
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,650,689
App. No.
17/571,305
Granted
Jun 9, 2026
Kind
B2
Abstract

A common command and control architecture (alternatively termed herein as a “universal control architecture”) is disclosed that allows different unmanned systems, including different types of unmanned systems (e.g., air, ground, and/or maritime unmanned systems), to be controlled simultaneously through a common control device (e.g., a controller that can be an input and/or output device). The universal control architecture brings significant efficiency gains in engineering, deployment, training, maintenance, and future upgrades of unmanned systems. In addition, the disclosed common command and control architecture breaks the traditional stovepipe development involving deployment models and thus reducing hardware and software maintenance, creating a streamlined training/proficiency initiative, reducing physical space requirements for transport, and creating a scalable, more connected interoperable approach to control of unmanned systems over existing unmanned systems technology.

Claims (95)

1 . A system for adding unmanned vehicles to a common command and control architecture, 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:

detect a signal from an unmanned vehicle within a vicinity of a controller, wherein the unmanned vehicle comprises a payload device;

in response to detecting the signal from the unmanned vehicle, transmit an identification request to the unmanned vehicle, wherein the identification request requests identification information associated with the unmanned vehicle;

receive, in response to the identification request, vehicle information, wherein the vehicle information comprises movement types supported by the unmanned vehicle, payload types supported by the unmanned vehicle, and communication protocol associated with the unmanned vehicle;

determine, based on processing the movement types and the payload types with each movement type associated with movement commands received from the unmanned vehicle, a plurality of movement control models for moving the unmanned vehicle, a payload movement control model for moving the payload device associated with the unmanned vehicle, wherein two or more movement control models of the plurality of movement control models include overlapping commands, and wherein each movement control model translates operator commands into movement instructions for the unmanned vehicle or the payload device;

select, from the plurality of movement control models, a subset of the plurality of movement control models comprising a least number of movement control models that cover all movement commands supported by the unmanned vehicle;

assign, the subset of the plurality of movement control models, the payload movement control model, and the communication protocol to an unmanned vehicle object; and

control, via each corresponding set of instructions, the unmanned vehicle using the subset of the plurality of movement control models.

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

receive, from the unmanned vehicle, position information resulting from execution of plurality of sets of test movement instructions associated with a test command;

determine, based on one or more test movement control models and the payload movement control model, expected position information associated with the unmanned vehicle; and

determine, based on the expected position information and the position information from the unmanned vehicle, whether the plurality of sets of the test movement instructions moved the unmanned vehicle into an expected position.

3 . The system of claim 1 , wherein the instructions for determining, based on the vehicle information, the plurality of movement control models and the payload movement control model, when executed by the one or more processors, further cause the one or more processors to:

receive, from the unmanned vehicle, a first plurality of supported movement commands and a second plurality of supported payload commands;

match the first plurality of supported movement commands with the plurality of movement control models and the second plurality of supported payload commands with one or more payload movement control models; and

assign, to the unmanned vehicle object, the plurality of movement control models that match the first plurality of supported movement commands and the one or more payload movement control models that match the second plurality of supported payload commands.

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

determine that a first movement control model matches a first portion of the first plurality of supported movement commands and a second movement control model matches a second portion of the first plurality of supported movement commands; and

generate a new movement control model comprising a first application programming interface for the first plurality of supported movement commands and a second application programming interface for the second portion of the first plurality of supported movement commands.

5 . A method comprising:

detecting a wireless signal being broadcast by an unmanned vehicle within a vicinity of a controller;

in response to detecting the wireless signal being broadcast by the unmanned vehicle, transmitting an identification request to the unmanned vehicle, wherein the identification request requests identification information associated with the unmanned vehicle and is formatted according to a model of the unmanned vehicle;

receiving, in response to the identification request from the unmanned vehicle, movement types associated with the unmanned vehicle, wherein each movement type is associated with a movement command supported by the unmanned vehicle;

determining, based on processing the movement types received from the unmanned vehicle, a plurality of movement control models for moving the unmanned vehicle, wherein two or more movement control models of the plurality of movement control models include overlapping commands, and wherein each movement control model translates operator commands or automation inputs into movement instructions for the unmanned vehicle;

selecting, from the plurality of movement control models, a subset of the plurality of movement control models comprising a least number of movement control models that cover all movement commands supported by the unmanned vehicle;

assigning the subset of the plurality of movement control models to the unmanned vehicle; and

controlling the unmanned vehicle using the subset of the plurality of movement control models.

6 . The method of claim 5 , further comprising:

receiving in response to the identification request, payload types associated with the unmanned vehicle and a communication protocol associated with the unmanned vehicle;

determining, based on the payload types, a payload movement control model for moving or controlling state of a payload device mounted on the unmanned vehicle, wherein the payload movement control model translates payload movement commands into payload movement instructions for the payload device mounted onto the unmanned vehicle;

assigning the payload movement control model to the unmanned vehicle; and

controlling the payload device mounted on the unmanned vehicle using the payload movement control model.

7 . The method of claim 5 , further comprising:

generating a plurality of test commands for the unmanned vehicle, wherein each test command of the plurality of test commands tests a movement control model;

translating, using one or more movement control models of the plurality of movement control models, the plurality of test commands into a plurality of sets of test movement instructions for the unmanned vehicle;

formatting the plurality of sets of the movement instructions according to a communication protocol associated with the unmanned vehicle; and

transmitting the plurality of sets of the test movement instructions formatted according to the communication protocol to the unmanned vehicle.

8 . The method of claim 7 , further comprising:

receiving, from the unmanned vehicle, position information resulting from execution of the plurality of sets of the test movement instructions;

determining, based on the one or more movement control models, expected position information associated with the unmanned vehicle; and

determining, based on the expected position information and the position information from the unmanned vehicle, whether the plurality of sets of instructions moved the unmanned vehicle into an expected position.

9 . The method of claim 5 , further comprising:

receiving, from the unmanned vehicle, payload orientation information resulting from execution of a set of instructions for moving a payload device;

determining, based on a payload movement control model, expected orientation information associated with the payload device; and

determining, based on the expected orientation information and the payload orientation information from the unmanned vehicle, whether the set of instructions moved the payload device into an expected orientation.

10 . The method of claim 5 , wherein determining the plurality of movement control models further comprises:

receiving, from the unmanned vehicle, a plurality of supported movement commands;

matching the plurality of supported movement commands with the plurality of movement control models; and

assigning, to an unmanned vehicle object, the plurality of movement control models that match the plurality of supported movement commands.

11 . The method of claim 10 , further comprising:

determining that a first movement control model matches a first portion of the plurality of supported movement commands and a second movement control model matches a second portion of the plurality of supported movement commands; and

generating a new movement control model comprising a first application programming interface for the first portion of the plurality of supported movement commands and a second application programming interface for the second portion of the plurality of supported movement commands.

12 . The method of claim 5 , wherein further comprising:

receiving, from the unmanned vehicle, a plurality of supported payload commands;

matching the plurality of supported payload commands with one or more payload movement control models; and

assigning, to an unmanned vehicle object, the one or more payload movement control models that match the plurality of supported payload commands.

13 . A non-transitory, computer-readable medium storing instructions for adding unmanned vehicles to a common command and control architecture, the instructions when executed by one or more processors, cause the one or more processors to perform operations comprising:

detecting a wireless signal being broadcast by an unmanned vehicle within a vicinity of a controller;

in response to detecting the wireless signal being broadcast by the unmanned vehicle, transmitting an identification request to the unmanned vehicle, wherein the identification request requests identification information associated with the unmanned vehicle and is formatted according to a model of the unmanned vehicle;

receiving movement types associated with the unmanned vehicle, wherein each movement type is associated with a movement command supported by the unmanned vehicle;

determining, based on processing the movement types received from the unmanned vehicle, a plurality of movement control models for moving the unmanned vehicle, wherein two or more movement control models of the plurality of movement control models include overlapping commands, and wherein each movement control model translates operator commands into movement instructions for the unmanned vehicle;

selecting, from the plurality of movement control models, a subset of the plurality of movement control models comprising a least number of movement control models that cover all movement commands supported by the unmanned vehicle;

assigning the subset of the plurality of movement control models to the unmanned vehicle; and

controlling the unmanned vehicle using the subset of the plurality of movement control models.

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

receiving in response to the identification request, payload types associated with the unmanned vehicle and a communication protocol associated with the unmanned vehicle;

determining, based on the payload types, a payload movement control model for moving a payload device mounted on the unmanned vehicle, wherein the payload movement control model translates payload movement commands into payload movement instructions for the payload device mounted onto the unmanned vehicle;

assigning the payload movement control model to the unmanned vehicle; and

controlling the payload device mounted on the unmanned vehicle using the payload movement control model.

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

generating a plurality of test commands for the unmanned vehicle, wherein each test command of the plurality of test commands tests a movement control model;

translating, using one or more movement control models, the plurality of test commands into a plurality of sets of test movement instructions for the unmanned vehicle;

formatting the plurality of sets of the test movement instructions according to a communication protocol associated with the unmanned vehicle; and

transmitting the plurality of sets of the test movement instructions formatted according to the communication protocol to the unmanned vehicle.

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

receiving, from the unmanned vehicle, position information resulting from execution of the plurality of sets of the test movement instructions;

determining, based on the one or more movement control models, expected position information associated with the unmanned vehicle; and

determining, based on the expected position information and the position information from the unmanned vehicle, whether the plurality of sets of the test movement instructions moved the unmanned vehicle into an expected position.

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

receiving, from the unmanned vehicle, payload orientation information resulting from execution of a set of instructions for moving a payload device;

determining, based on a payload movement control model, expected orientation information associated with the payload device; and

determining, based on the expected orientation information and the payload orientation information from the unmanned vehicle, whether the set of instructions moved the payload device into an expected orientation.

18 . The non-transitory, computer-readable medium of claim 13 , wherein the instructions for determining the plurality of movement control models further cause the one or more processors to perform operations comprising:

receiving, from the unmanned vehicle, a plurality of supported movement commands;

matching the plurality of supported movement commands with the plurality of movement control models; and

assigning, to an unmanned vehicle object, the plurality of movement control models that match the plurality of supported movement commands.

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

determining that a first movement control model matches a first portion of the plurality of supported movement commands and a second movement control model matches a second portion of the plurality of supported movement commands; and

generating a new movement control model comprising a first application programming interface for the first portion of the plurality of supported movement commands and a second application programming interface for the second portion of the plurality of supported movement commands.

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

receiving, from the unmanned vehicle, a plurality of supported payload commands;

matching the plurality of supported payload commands with one or more payload movement control models; and

assigning, to an unmanned vehicle object, the one or more payload movement control models that match the plurality of supported payload commands.

Assignments (3)
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE PREVIOUSLY RECORDED AT REEL: 058679 FRAME: 0265. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Nov 22, 2023
From: SUMMER, MATTHEW D.; BOWMAN, WILLIAM S.; FALENDYSZ, ANDREW D.; HEDMAN, DANIEL R.; TRUESDELL, BRAD; COOPER, JEFFREY S.; BOWMAN, MICHAEL E.; WAGONER, SEAN; MAKOVY, KEVIN
To: TOMAHAWK ROBOTICS, INC.
Reel/Frame 065663/0392 →
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 Jan 18, 2022
From: SUMMER, MATTHEW D.; BOWMAN, WILLIAM S.; FALENDYSZ, ANDREW D.; HEDMAN, DANIEL R.; TRUESDELL, BRAD; COOPER, JEFFREY S.; BOWMAN, MICHAEL E.; WAGONER, SEAN; MAKOVY, KEVIN
To: TOMAHAWK ROBOTICS
Reel/Frame 058679/0265 →
Continuity (2)
Provisional Application 63215043 · Jun 25, 2021
Related Publication 20220413490A1 · Dec 29, 2022
References Cited (26)
US 8265818B2 · Allport · 2012 [cited by examiner]
US 9292015B2 · Prieto · 2016 [cited by examiner]
US 9833901B2 · Perrone · 2017 [cited by examiner]
US 10054939B1 · Applewhite · 2018 [cited by applicant]
US 11334069B1 · Buerger et al. · 2022 [cited by applicant]
US 20090216390A1 · Smith · 2009 [cited by examiner]
US 20100312917A1 · Allport · 2010 [cited by applicant]
US 20110106338A1 · Allis et al. · 2011 [cited by applicant]
US 20120191269A1 · Chen · 2012 [cited by examiner]
US 20140350723A1 · Prieto · 2014 [cited by examiner]
US 20150142211A1 · Shehata · 2015 [cited by examiner]
US 20170015405A1 · Chau et al. · 2017 [cited by applicant]
US 20170308079A1 · Bash · 2017 [cited by examiner]
US 20180081354A1 · Magy · 2018 [cited by examiner]
US 20190339691A1 · Scrapper et al. · 2019 [cited by applicant]
US 20190363821A1 · Whittaker · 2019 [cited by examiner]
US 20200298818A1 · Malone · 2020 [cited by examiner]
US 20200368913A1 · Scott · 2020 [cited by examiner]
US 20200410874A1 · Jensen · 2020 [cited by examiner]
US 20210405661A1 · Liu · 2021 [cited by applicant]
EP 3792726A1 · 2021 [cited by applicant]
Non-Final Office Action issued in co-pending U.S. Appl. No. 17/571,217 on Apr. 3, 2023 (34 pages). [cited by applicant]
Extended European Search Report issued in corresponding European Application No. 22180834.8 on Nov. 7, 2022 (10 pages). [cited by applicant]
Extended European Search Report issued in corresponding European Application No. 22180852.0 on Jan. 13, 2023 (5 pages). [cited by applicant]
Extended European Search Report issued in corresponding European Patent Application No. 23215657.0 on Apr. 18, 2024 (5 pages). [cited by applicant]
Office Action Non-Final mailed Sep. 12, 2025, in U.S. Appl. No. 18/469,635 (31 pages). [cited by applicant]