IP Library Granted Patent US 12,013,898
Granted Patent B2
US 12,013,898 · App. 17/929,456 · Granted Jun 18, 2024

Method and system for constructing static directed acyclic graphs

Inventor: Gregory Boyd Nichols (Franklin Park, PA)
Assignee: Ford Global Technologies, LLC
G06F16/9024G05D1/0088G05D1/0214G05D1/0223G06F9/3005G06V20/56
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,013,898
App. No.
17/929,456
Granted
Jun 18, 2024
Kind
B2
Abstract

At compile-time, a processor develops a computer program by receiving an input that includes multiple nodes and connections between pairs of the nodes. The nodes represent object properties such as properties of objects that an autonomous vehicle (AV) detects while moving about an environment. For each node, the system will identify a depth that represents a number of nodes along a longest path from that node to any available input node. The system will order the nodes by depth in a sequence, and it will build a graph-based program specification that includes the nodes in the sequence, along with the connections. The graph-based program specification may correspond to a directed acyclic graph (DAG). The system will compile the graph-based program specification into a computer-readable program, and it will save the computer-readable program to a memory so that the AV or other system can use it at run-time.

Claims (44)

1. A method of developing a computer program, the method comprising:

by a processor:

receiving a plurality of nodes and a plurality of connections between pairs of the nodes, each node having a value of a property of an object received from at least one sensor of the autonomous vehicle;

ordering the nodes in a sequence based on a depth associated with each node, wherein the depth represents a number of nodes that exist along a path from an input node to the associated node to create a topological ordering of the nodes; and

generating a graph-based program specification including the nodes in the sequence and the connections between the nodes to allow for a value of a respective node to update once a value of a respective ancestor node is updated to allow the update to carry through to the node with the longest depth based on the topological ordering of the nodes for sequential updating of the values of the nodes.

2. The method of claim 1 , wherein the graph-based program specification corresponds to a directed acyclic graph (DAG).

3. The method of claim 1 , wherein:

each node represents a node formula that identifies one or more additional object properties that are required to update the value of the object property; and

each connection that extends from any node represents a connection formula that uses the value of the node from which the connection extends.

4. An object detection system for an autonomous vehicle, the system comprising:

a processor; and

a computer-readable medium containing programming instructions that are configured to, when executed, cause the processor to:

receive a plurality of nodes and a plurality of connections between pairs of the nodes, each node having a value of a property of an object received from at least one sensor of the autonomous vehicle,

order the nodes in a sequence based on a depth associated with each node, wherein the depth represents a number of nodes that exist along a path from an input node to the associated node to create a topological ordering of the nodes,

generate a graph-based program specification including the nodes in the sequence and the connections between the nodes to allow for a value of a respective node to update once a value of a respective ancestor node is updated to allow the update to carry through to the node with the longest depth based on the topological ordering of the nodes for sequential updating of the values of the nodes.

5. The system of claim 4 , wherein the graph-based program specification is a directed acyclic graph (DAG).

6. The system of claim 4 , wherein:

wherein the vehicle is an autonomous vehicle, the autonomous vehicle including an operating system

configured to cause the autonomous vehicle to, at runtime:

receive, from the at least one sensors of the vehicle, data that detects an actor in an environment, and

determine a plurality of properties of the actor based on the graph-based specification.

7. The system of claim 4 , wherein object properties include one or more of

whether the vehicle is parked,

yaw of the vehicle, a velocity of the vehicle, a distance between the vehicle and a curb, brake light status of the vehicle, whether the vehicle is near a stop sign or intersection, a time at which the vehicle has remained stationary, identification of a lane in which the vehicle is positioned,

whether a person is jaywalking,

whether the person is at a crosswalk, the lane in which the person is walking, or the distance of the person from an intersection.

8. The system of claim 6 , wherein:

each node represents a node formula that identifies one or more additional object properties that are required to update the value of the object property; and

each connection that extends from any node represents a connection formula that uses the value of the node from which the connection extends.

9. The system of claim 4 , further comprising an computing device, and wherein the computing device comprises an autonomous visualization system for the autonomous vehicle.

10. A non-transitory computer readable medium comprising instructions for generating a graph-based program specification for object detection by an autonomous vehicle that,

when executed, cause a processor to:

receiving a plurality of nodes and a plurality of connections between adjacent ones of the nodes, each node having a value of a property of an object received from at least one sensor of the autonomous vehicle,

ordering the nodes by depth in a sequence, based on a depth associated with each node, wherein the depth represents a number of nodes that exist along a path from an input node to the associated node to create a topological ordering of the nodes, and

generating a graph-based program specification including the nodes in the sequence and connections between the nodes to allow for a value of a respective node to update once a value of a respective ancestor node is updated to allow the update to carry through to the node with the longest depth based on the topological ordering of the nodes for sequential updating of the values of the nodes.

11. The medium of claim 10 , wherein:

the property of the object includes at least one of:

for an object that is a vehicle:

for a first node, a property indicating whether the vehicle is parked, and

for one or more ancestor nodes, properties that comprise yaw of the vehicle, a velocity of the vehicle, a distance between the vehicle and a curb, brake light status of the vehicle, whether the vehicle is near a stop sign or intersection, a time at which the vehicle has remained stationary, identification of a lane in which the vehicle is positioned; and

for an object that is a pedestrian:

for a first node, a property indicating whether the person is jaywalking, and

for one or more ancestor nodes, properties that comprise whether the person is at a crosswalk, the lane in which the person is walking, or the distance of the person from an intersection.

12. The medium of claim 10 , wherein each connection that extends from any node represents a formula that uses the value of the node from which the connection extends.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 9, 2023
From: ARGO AI, LLC
To: FORD GLOBAL TECHNOLOGIES, LLC
Reel/Frame 063025/0346 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 2, 2022
From: NICHOLS, GREGORY BOYD
To: ARGO AI, LLC
Reel/Frame 060980/0171 →
Continuity (2)
Continuation 16735820 · Jan 7, 2020
Related Publication 20220413505A1 · Dec 29, 2022