Load balance for computation in platooning
Patent Information
- Application Number
- PCT/CN2024/079815
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-03-04
- Publication Date
- 2025-10-02
AI Technical Summary
The computational burden on lead vehicles in a platoon of autonomously or semi-autonomously operated vehicles increases with the number of vehicles and sensory data, leading to inefficiencies and potential safety issues due to redundant data sharing and overwhelmed processing capabilities, especially in complex urban environments.
Delegating computational tasks related to object identification and tracking to computation assistants within the platoon, dividing the surrounding area into zones, and assigning specific tasks to vehicles with sufficient computational resources to manage these tasks effectively.
Enables the formation and safe operation of large platoons in high-density scenarios by reducing computational load on the lead vehicle, enhancing efficiency and safety through precise real-time decision-making and management.
Smart Images

Figure CN2024079815_02102025_PF_FP_ABST
Abstract
Description
LOAD BALANCE FOR COMPUTATION IN PLATOONINGTECHNICAL FIELD
[0001] The present disclosure relates generally to managing operations of a group of vehicles traveling in unison, and more particularly to protecting data computational load balancing among vehicles.BACKGROUND
[0002] Vehicles, including automobiles, trucks, aircraft and watercraft are increasingly fitted with complex electronic systems that are used for system management, control, and security. For example, it is common for vehicles to include a navigation system that, in many instances, can be used to support autonomous operation of the vehicle. In the latter example, a control system may communicate with the navigation system, a steering system and a powertrain or other propulsion system in addition to a variety of sensors that provide feedback used to control operation of the vehicle. The various systems in a vehicle may be implemented using a variety of components such as circuit boards, integrated circuit (IC) devices, application-specific integrated circuit (ASIC) devices, System-on-Chip (SoC) devices, and / or System-in-Package (SIP) devices, etc. The types of components may include processing circuits, user interface components, storage and other peripheral components.
[0003] A communication infrastructure may be provided to support data communication within and between various systems or subsystems. The communication infrastructure may include some combination of wireless and wired communication links. In some instances, the communication infrastructure may enable the exchange of information between two or more autonomous vehicles in close proximity to one another. In general, proximity may be determined by the range of wireless communication technologies employed in the autonomous vehicles.
[0004] Examples of standards that define or control wireless communication that may be deployed or supported within and between vehicles include certain standards defined by the Institute of Electrical and Electronics Engineers (IEEE) 802.11 Working Group, the standards defined by the Bluetooth Special Interest Group (SIG) and radio access standards defined by the 3rd Generation Partnership Project (3GPP) . Examples of standards that define or control wired communication within a vehicle include standards associated with the Inter-Integrated Circuit (I2C or I2C) , standards defined by the Mobile Industry Processor Interface (MIPI) Alliance and the CAN bus Standard promulgated by the International Organization for Standardization (ISO) .
[0005] Improvements in technology and communications capabilities available to autonomous vehicles have led to increased functionalities that can support increased cooperation between groups of autonomous vehicles that are traveling in a coordinated manner. Accordingly, there is an ongoing need to improve computational methods and capabilities available to manage groups of coordinated autonomous vehicles.SUMMARY
[0006] Certain aspects of the disclosure relate to systems, apparatus, methods and techniques that enable a lead vehicle in a platoon of autonomously or semi-autonomously driven vehicles to delegate certain tasks to computation assistants and thereby reduce the computation burden on the lead vehicle.
[0007] In various aspects of the disclosure, a control system in a platoon lead vehicle includes a plurality of imaging devices, a plurality of sensors and a processing circuit. The processing circuit may be configured to determine computational capabilities of member vehicles that are associated with a platoon of vehicles managed by the platoon lead vehicle, determine perception capabilities of the member vehicles based on imaging devices or sensors provided in the member vehicles, select a first member vehicle to operate as a computation assistant based on the computational capabilities and available computational capacity of the first member vehicle, assign one or more tasks to the first member vehicle, the one or more tasks being related to identifying and tracking objects located proximate to the platoon of vehicles based on imaging or sensor data provided by at least one other member vehicle, and configure a route or speed for the platoon of vehicles based on identification and tracking information generated by the first member vehicle. The platoon lead vehicle may include a plurality of data communication links, each data communication link coupling at least one of the plurality of imaging devices with the processing circuit.
[0008] In various aspects of the disclosure, a control system in a vehicle includes a plurality of imaging devices, a plurality of sensors, and a processing circuit. The processing circuit may be configured to report computational capabilities of the vehicle in response to a capabilities message received from a lead vehicle in a platoon of vehicles, report perception capabilities of the vehicle in response to the capabilities message received from the lead vehicle, the reported perception capabilities including a listing of the imaging devices and the plurality of sensors, receive an appointment message from the lead vehicle, the appointment message appointing the vehicle to serve as a computation assistant within the platoon of vehicles, receive one or more task assignments from the lead vehicle after responding positively to the appointment message, the one or more task assignments being related to identifying and tracking objects located proximate to the platoon of vehicles based on imaging or sensor data captured by the imaging devices and the plurality of sensors and by at least one other vehicle in the platoon of vehicles, report object identification and tracking information to the lead vehicle, and modify a trajectory or speed of the vehicle in response to a driving strategy message received from the lead vehicle. The processing circuit may be configured to use a plurality of data communication links, each data communication link coupling at least one of the plurality of imaging devices with the processing circuit.
[0009] In various aspects of the disclosure, a platoon of vehicles includes a lead vehicle and one or more platoon member vehicles that are managed by the lead vehicle and that communicate with the lead vehicle through a wireless data communication link. The lead vehicle has a processing circuit that is configured to determine computational capabilities of the one or more platoon member vehicles, determine perception capabilities of the one or more platoon member vehicles based on imaging devices or sensors provided in the one or more platoon member vehicles, select a first platoon member vehicle to operate as a computation assistant based on the computational capabilities and available computational capacity of the first platoon member vehicle, assign one or more tasks to the first platoon member vehicle, the one or more tasks being related to identifying and tracking objects located proximate to the platoon of vehicles based on imaging or sensor data provided by at least one other platoon member vehicle, and configure a route or speed for the platoon of vehicles based on identification and tracking information generated by the first platoon member vehicle. The first platoon member vehicle has a processing circuit that is configured to report computational capabilities of the first platoon member vehicle in response to a capabilities message received from the lead vehicle, report perception capabilities of the first platoon member vehicle in response to the capabilities message received from the lead vehicle, the reported perception capabilities including a listing of imaging devices and sensors provided in the first platoon member vehicle, receive an appointment message from the lead vehicle, the appointment message appointing the first platoon member vehicle to serve as a computation assistant within the platoon of vehicles, receive one or more task assignments from the lead vehicle after responding positively to the appointment message, the one or more task assignments being related to identifying and tracking objects located proximate to the platoon of vehicles based on imaging or sensor data captured by the imaging devices and sensors provided in the first platoon member vehicle and by imaging or sensor data captured by imaging devices and sensors provided in at least one other platoon member vehicle, report object identification and tracking information to the lead vehicle, and modify a trajectory or speed of the first platoon member vehicle in response to a driving strategy message received from the lead vehicle.
[0010] In certain aspects, the processing circuit in the first platoon member may be further configured to modify a trajectory or speed of the first platoon member vehicle in response to a driving strategy message received from the lead vehicle. In one example, the route for the platoon of vehicles is configured by defining an endpoint and one or more waypoints at which at least one vehicle is expected to leave the platoon of vehicles.
[0011] In certain aspects, the processing circuit in the lead vehicle may be further configured to divide an area surrounding and including the platoon of vehicles into a plurality of zones. Each zone may include one or more objects to be identified and tracked. The processing circuit in the first platoon member may be further configured to assign responsibility for identifying and tracking objects within a first zone to the first platoon member vehicle. The zones may be defined based on a computation load of the lead vehicle and the first platoon member vehicle.
[0012] In certain aspects, the processing circuit in the lead vehicle may be further configured to receive a request to join the platoon of vehicles from a remote vehicle that is located within one of the plurality of zones. The processing circuit in the lead vehicle may transmit a platoon identifier to the remote vehicle as a positive response to the request to join the platoon of vehicles. The platoon identifier may identify the remote vehicle as a second platoon member vehicle. The processing circuit in the in the lead vehicle may be further configured to determine computational capabilities and perception capabilities of the second platoon member vehicle. The processing circuit in the lead vehicle may be further configured to send an appointment message to the second platoon member vehicle, and assign one or more identifying and tracking tasks to the second platoon member vehicle when the second platoon member transmits a positive response to the appointment message as an indication of acceptance of a computation assistant appointment.BRIEF DESCRIPTION OF THE DRAWINGS
[0013] FIG. 1 illustrates an example of systems in an automobile that may be adapted, configured or operated in accordance with certain aspects of this disclosure.
[0014] FIG. 2 illustrates an example of an apparatus in a vehicle subsystem that may be adapted in accordance with certain aspects of this disclosure.
[0015] FIG. 3 illustrates a scenario in which a platoon has been formed while traveling on a road.
[0016] FIG. 4 illustrates an example of zoning in accordance with certain aspects of this disclosure.
[0017] FIG. 5 illustrates a scenario in which a platoon includes a platoon leader and at least one computation assistant in accordance with certain aspects of this disclosure.
[0018] FIG. 6 includes message flow diagrams that illustrates examples of platoon management procedures in accordance with certain aspects of this disclosure.
[0019] FIG. 7 illustrates one example of an apparatus employing a processing circuit that may be adapted in accordance with certain aspects disclosed herein.
[0020] FIG. 8 is a flowchart that illustrates a method for managing a platoon of vehicles in accordance with certain aspects disclosed herein.
[0021] FIG. 9 illustrates a first example of a hardware implementation for a control system in accordance with certain aspects disclosed herein.DETAILED DESCRIPTION
[0022] The detailed description set forth below in connection with the appended drawings is intended as a description of various configurations and is not intended to represent the only configurations in which the concepts described herein may be practiced. The detailed description includes specific details for the purpose of providing a thorough understanding of various concepts. However, it will be apparent to those skilled in the art that these concepts may be practiced without these specific details. In some instances, well-known structures and components are shown in block diagram form in order to avoid obscuring such concepts.
[0023] Several aspects of the invention will now be presented with reference to various apparatus and methods. These apparatus and methods will be described in the following detailed description and illustrated in the accompanying drawings by various blocks, modules, components, circuits, steps, processes, algorithms, etc. (collectively referred to as “elements” ) . These elements may be implemented using electronic hardware, computer software, or any combination thereof. Whether such elements are implemented as hardware or software depends upon the particular application and design constraints imposed on the overall system.
[0024] Certain examples described herein may be implemented using wired communication links to interconnect different parts of a vehicle, including multidrop serial buses that are operated in accordance with a standardized or proprietary protocol. In one example, a serial bus can be operated in accordance with an Inter-Integrated Circuit (I2C or I2C) communication protocol. The I2C bus is configured as a multi-drop bus and was developed to connect low-speed peripherals to a processor. The two wires of an I2C bus include a Serial Data Line (SDA) that carries a data signal, and a Serial Clock Line (SCL) that carries a clock signal. The serial bus may be operated in accordance with a multi-master protocol such that one or more devices may be a designated as a bus master or host device for the serial bus. A device may serve as a bus master or host in some transmissions and as a slave or subordinate device in other transmissions.
[0025] In some examples, high-speed serial buses are operated in accordance with standards defined by the Mobile Industry Processor Interface (MIPI) Alliance, such as the Improved Inter-Integrated Circuit (I3C) , Radio Frequency Front-End (RFFE) , system power management interface (SPMI) , camera serial interface (CSI) and display serial interface (DSI) standards. In some examples, the Controller Area Network (CAN) vehicle bus standard may be used in a vehicle to provide a message-based protocol that supports prioritized multidrop operation in which bus contention is resolved by permitting the highest priority contending device to transmit while devices with lower priority refrain from transmitting according to a back off procedure. Certain implementations of the CAN bus are described in the CAN Standard promulgated by the International Organization for Standardization (ISO) .
[0026] Some or all of the described examples may be implemented in any device, system or network that is capable of transmitting and receiving radio frequency (RF) signals according to one or more of the Institute of Electrical and Electronics Engineers (IEEE) 802.11 standards, the IEEE 802.15 standards, the standards as defined by the Bluetooth Special Interest Group (SIG) , or the Long Term Evolution (LTE) , 3G, 4G or 5G (New Radio (NR) ) standards promulgated by the 3rd Generation Partnership Project (3GPP) , among others. The described implementations can be implemented in any device, system or network that is capable of transmitting and receiving RF signals according to one or more of the following technologies or techniques: code division multiple access (CDMA) , time division multiple access (TDMA) , frequency division multiple access (FDMA) , orthogonal FDMA (OFDMA) , single-carrier FDMA (SC-FDMA) , single-user (SU) multiple-input multiple-output (MIMO) and multi-user (MU) -MIMO. The described implementations also can be implemented using other wireless communication protocols or RF signals suitable for use in one or more of a wireless personal area network (WPAN) , a wireless local area network (WLAN) , a wireless wide area network (WWAN) , or an internet of things (IOT) network.
[0027] Direct communications between wireless devices may include direct communications between vehicles and systems that use such communications may sometimes be referred to as vehicle-to-everything (V2X) communication systems. V2X communication links may be configured to convey important information between vehicles regarding object and vehicle detection, road conditions, and / or the activities of nearby vehicles, for example. V2X communication systems may also be used by autonomous or semi-autonomous vehicles (e.g., self-driving vehicles or vehicles that provide driver assistance) and may provide extra information beyond the reach of the vehicle's existing system. Such V2X communication links may provide certain safety-related information (e.g., location, direction of travel, velocity, object detection, etc. ) in unencrypted messages so that other vehicles may receive such information.
[0028] Manned and autonomous vehicles may be equipped with various sensors such as radio detection and ranging, light detection and ranging, and other technologies to enable the vehicles to detect proximate objects. The vehicles may provide V2X messages such as Basic Safety Messages (BSMs) and Sensor Data Sharing Messages (SDSMs) to share the object detection information with neighboring vehicles. An On Board Unit (OBU) in a vehicle may be configured to receive BSMs and SDSMs from a plurality of vehicles and filter the relevant object detection information. For example, a SDSM may be discarded based on its association with a BSM. Information elements carried in SDSMs may be used to define groups of detected objects. In some implementations, messages may be formatted according to protocols defined by the European Telecommunications Standards Institute (ETSI) , including Cooperative Awareness Message (CAM) and Collective Perception Message (CPM) protocols.
[0029] Certain standards defined for V2X communication systems may also define or relate to an Advanced Driver Assistance System (ADAS) . An ADAS can assist drivers make critical decisions related to lane changes, speed selection, overtaking decisions and the like. Overtaking decisions may relate to passing other vehicles and may advise when passing is safe or should not be attempted (do not pass, or DNP) . An ADAS may improve safety of operation in bad weather, low lighting, low visibility, and so on.
[0030] Certain systems and / or processing circuits disclosed herein may be used to automate features and functions of a vehicle. For example, camera-based systems, proximity indicators, speed and velocity detectors and other systems may provide images and other information that can be used to assist an operator of the automobile. In one example, the images and other information enable the identification of potential hazards, proximate objects, presence of pedestrians and other traffic and / or road conditions. In some instances, a combination of systems and / or processing circuits can enable autonomous operation of an automobile, and can provide feedback and other information to security and vehicle access management systems and to driver assistance systems, including forward collision warning systems, lane departure warning systems, rear cross traffic warning system, blind spot warning systems, vehicle reverse imaging systems, parking assistance, and other driver assistance systems. These and other systems may use some combination of cameras, sensors and location systems including systems based on radio detection and ranging, light detection and ranging and / or ultrasonic detection systems.
[0031] Examples of sensor management systems include camera systems, which may be used throughout this disclosure as an example of a type of sensor. However, the concepts, architectures, systems, apparatus, techniques and methods disclosed in these examples applies equally to other types of sensors and location systems including systems based on radio detection and ranging, light detection and ranging and / or ultrasonic transducers or sensors.
[0032] FIG. 1 illustrates an example of an automobile 100, which includes systems that may be adapted, configured or operated in accordance with certain aspects of this disclosure. The automobile 100 may be equipped with multiple imaging or sensing devices, including the illustrated cameras or sensors 102, 104, 106, 108, 112, 114. The automobile 100 may include sensors such as tire pressure or braking sensors 116, 118. The automobile 100 may also include one or more antennas 110 used for radio frequency reception, wireless communication and / or radio navigation using a global positioning system (GPS) . A central controller 120 may be coupled to each of the cameras 102, 104, 106, 108, 112, 114, sensors 116, 118 and antennas 110. The central controller 120 may configure and manage automated systems and / or driver assistance systems. In some implementations, the central controller 120 may be configured to operate as an engine control unit that manages the operation and performance of the engine, motor, motors or other power systems in the automobile 100. In some instances, the central controller 120 may be embodied in an electronic system, such as an ASIC module, an SoC, an SIP, etc.
[0033] Robust data communication links are needed to support the large number of cameras deployed within the automobile 100. In some examples, 20-30 cameras may be deployed to support automation and driver assistance systems. Each camera may be capable of generating data at a rate of between 1-10 gigabits per second (Gbps) resulting in aggregate data rates of up to 300 Gbps. The communication of this volume of data can be expected to result in the consumption of high levels of power and the generation of associated heat from interface and data protection and processing circuits. In conventional systems, data rates may be reduced to control power consumption and heat generation, resulting in loss of image quality.
[0034] FIG. 2 illustrates an example of an apparatus 200 that may be incorporated in a vehicle subsystem that includes sensors and at least one controller that may be adapted in accordance with certain aspects of this disclosure. In the illustrated example, the apparatus 200 includes multiple devices 202, and 2220-222N coupled to a two-wire serial bus 220. The devices 202 and 2220-222N may be implemented in one or more semiconductor IC devices, such as an application processor, SoC or ASIC. In various implementations certain of the devices 202 and 2220-222N may include, support or operate as a modem, a signal processing device, a display driver, a camera, a user interface, a sensor, a sensor controller, a media player, a transceiver, and / or other such components or devices. In some examples, one or more devices 2220-222N may be used to control, manage or monitor a sensor device. Communication between devices 202 and 2220-222N over the serial bus 220 is controlled by a host device 202. Certain types of bus can support multiple bus masters 202.
[0035] In one example, a host device 202 may include an interface controller 204 that can manage access to the serial bus, configure dynamic addresses for subordinate devices and / or generate a clock signal 228 to be transmitted on a clock line 218 of the serial bus 220. The host device 202 may include configuration registers 206 or other storage 224, and other control logic 212 configured to handle protocols and / or higher-level functions. The control logic 212 may include a processing circuit such as a state machine, sequencer, signal processor or general-purpose processor. The host device 202 includes a transceiver 210 and line drivers / receivers 214a and 214b. The transceiver 210 may include receiver, transmitter and common circuits, where the common circuits may include timing, logic and storage circuits and / or devices. In one example, the transmitter encodes and transmits data based on timing in the clock signal 228 provided by a clock generation circuit 208. Other timing clocks 226 may be used by the control logic 212 and other functions, circuits or modules.
[0036] At least one device 2220-222N may be configured to operate as a subordinate device on the serial bus 220 and may include circuits and modules that support a display, an image sensor, and / or circuits and modules that control and communicate with one or more sensors that measure environmental conditions. In one example, a device 2220 configured to operate as a subordinate device may provide a control function, physical layer circuit 232 that includes circuits and modules to support a display, an image sensor, and / or circuits and modules that control and communicate with one or more sensors that measure environmental conditions. In this example, the device 2220 can include configuration registers 234 or other storage 236, control logic 242, a transceiver 240 and line drivers / receivers 244a and 244b. The control logic 242 may include a processing circuit such as a state machine, sequencer, signal processor or general-purpose processor. The transceiver 240 may include receiver, transmitter and common circuits, where the common circuits may include timing, logic and storage circuits and / or devices. In one example, the transmitter encodes and transmits data based on timing in a clock signal 248 provided by clock generation and / or recovery circuits 246. In some instances, the clock signal 248 may be derived from a signal received from the clock line 218. Other timing clocks 238 may be used by the control logic 242 and other functions, circuits or modules.
[0037] The serial bus 220 may be operated in accordance with a CAN, Ethernet, RFFE, I2C, I3C, SPMI or other suitable protocol. In some instances, two or more devices 202, 2220-222N may be configured to operate as a host device on the serial bus 220. In some instances, the apparatus 200 includes multiple serial buses 220, 252a and / or 252b that couple two or more of the devices 202, 2220-222N or one of the devices 202, 2220-222N and a peripheral device such as a display or camera 250. In some examples, one subordinate device 2220 is configured to operate as a display or camera coupled to a display or camera 250. The latter subordinate device 2220 may include a physical layer circuit 232 that is configured to enable communication with the display or camera 250 over a bus 252.
[0038] Platooning is a term that is used herein to describe a group of autonomously, or semi-autonomously, operated vehicles that travel in a file formation under centralized control of a platoon leader. FIG. 3 illustrates an example scenario 300 in which a platoon 304 has been formed as a single file, or column while traveling on a road 302. The illustrated platoon 304 includes five vehicles 3061-3065 that have associated themselves with the platoon 304, and one remote vehicle 308 that has not associated with the platoon 304. The remote vehicle 308 may be operated independently of the platoon 304. In one example, the remote vehicle 308 may be driven or controlled by a human driver or occupant. In another example, the remote vehicle 308 may be autonomously driven with no expectation of associating with the platoon 304. For instance, the remote vehicle 308 may have a destination or objective that is incompatible with the intended route, driving strategy or objectives of the platoon 304. In another example, the remote vehicle 308 may be autonomously driven and may be a candidate for association with the platoon 304. In another example, the remote vehicle 308 may have recently disassociated itself from the platoon 304.
[0039] The platoon 304 can travel at speeds and with a separation compatible with the capabilities of the member vehicles 3061-3065. In one aspect of this disclosure, the member vehicles 3061-3065 can negotiate the maximum and / or minimum speed and separation expected of the member vehicles 3061-3065. The route to be followed by the platoon 304 may also be negotiated or selected to accommodate the needs of individual member vehicles 3061-3065. A platoon leader may be designated to manage the movement of the platoon 304. In the illustrated example, the leading member vehicle 3061 is the designated platoon leader. The platoon leader may select speed and direction of travel and may be responsible for selection of the route to be followed by the platoon 304.
[0040] In one example, the platoon 304 may travel at or near maximum highway speeds with member vehicles 3061-3065 separated by a distance of one or two meters. At such distances, cameras and sensors in two or more member vehicles 3061-3065 may detect, recognize, perceive and / or track an object simultaneously. For example, cameras or proximity sensors in three member vehicles 3063, 3064 and 3065 may perceive the presence of a stationary object, such as a traffic cone 310, or a moving object, such as a pedestrian (not shown) , that changes, at least temporarily, the width of the road 302 that is available to the platoon 304 for maneuver. The presence of the traffic cone 310 may prevent a lane change by one or more member vehicles 3061-3065, for example.
[0041] Overlapped perceptions must be correlated to ensure proper decision making by the platoon leader, particularly in an urban environment where pedestrians, cyclists and parked cars are commonplace. In the example of the traffic cone 310 that is perceived by three member vehicles 3063, 3064 and 3065, one member vehicle 3065 may determine that the traffic cone 310 constrains its freedom of movement, one member vehicle 3064 may determine that prior constraints imposed by the traffic cone 310 no longer apply and the third member vehicle 3063 may determine that the traffic cone 310 need not be tracked. In this example, the platoon leader must reconcile the three decisions of the three member vehicles 3063, 3064 and 3065 in order to guide or lead the platoon 304 in a manner that is consistent with the operating conditions and constraints affecting each individual vehicles 3061-3065.
[0042] The computational power possessed by the platoon leader can determine the maximum number of vehicles that can be included in or associated with a platoon 304. For the purposes of this description, computational power or computing power may measure the number of calculations a processing circuit can perform within a unit of time. In one example, computational power or computing power may be measured as the number of floating-point operations that can be performed within a second. In another example, computational power or computing power may be measured as the number of instructions that can be executed within a second. In the context of autonomously and / or semi-autonomously operated vehicles, computational power or computing power may determine the number of external objects that can be identified and / or tracked within a second when an autonomously or semi-autonomously operated vehicle is in motion. The computational power of a platoon leader can limit the number of vehicles and / or the length of the platoon 304 when large numbers of objects must be identified and tracked.
[0043] Computational burden on the platoon leader increases with the number of vehicles associated with the platoon and the sensory capabilities of the vehicles. The sensory capabilities of a vehicle may relate to the range of radio detection and ranging sensors or to the range of light detection and ranging sensors. The sensory capabilities of a vehicle may relate to the resolution of cameras. The sensory capabilities of a vehicle may relate to the number of sensors provided in the vehicle. Furthermore, the computational capability of the platoon leader may be quickly overwhelmed when member vehicles 3061-3065 detect or track large numbers of objects that have the potential of affecting the movement of the platoon 304. The quantity of sensory data generated by the platoon 304 can degrade the computational performance of individual member vehicles 3061-3065 when the member vehicles 3061-3065 share sensory data with all members of the platoon 304. In many instances, two or more member vehicles 3061-3065 that detect the same object may share sensory data with one another that is redundant or irrelevant. The mass redundant data sharing and the computational power required for processing object information and coordinating movement of the platoon can render the platoon concept impractical for large platoons, particularly in urban environments where many objects must be tracked.
[0044] The platoon leader is responsible for the management and control of collective actions taken by the platoon. In complex traffic scenarios, it can be a challenge for the platoon leader to conduct all of the data collection from all platoon members, to perform the analysis necessary to inform decisions affecting the movement of the platoon and to coordinate movement of other vehicles in the platoon. The efficiency and safety of platoon operations is dependent on the precision and real-time capabilities of the control system in the platoon leader.
[0045] Certain aspects of the disclosure relate to the delegation of tasks or functions associated with identification and / or tracking of objects detected by one or more members of a group of autonomously or semi-autonomously operated vehicles that are traveling in a platoon. For the purposes of this disclosure, a task may be defined as the unit of computational work involved in identifying or tracking an object or group of objects. Certain aspects of the task may be associated with a process or thread (of execution) . In one example, one or more tasks may be initiated to identify objects using sensory data captured by imaging devices, proximity sensors, motion detection sensors, radio detection and ranging devices, light detection and ranging devices and or other types of sensors or devices provided in the member vehicles of a platoon. In one example, a task may be initiated to track a single object identified based on sensory data provided by one or more member vehicles of the platoon. A task may be executed by performing computational functions that can parse, analyze and correlate sensory data provided by the member vehicles of the platoon.
[0046] In accordance with certain aspects of this disclosure, an area surrounding and including a platoon of autonomously or semi-autonomously operated vehicles may be divided into zones, and by delegating tasks related to a zone to one or more vehicles of the platoon. In some instances, tasks are delegated to member vehicles of the platoon that are traveling in the zone. In some instances, tasks associated with objects in a zone may be delegated to a member vehicle of the platoon that is not covered by the zone, but which has sufficient computational power and other resources to handle the tasks.
[0047] FIG. 4 illustrates an example of zoning 400 in which tasks associated with the aggregation and correlation of information provided by member vehicles 4061-4065 of a platoon 404 can be delegated by a platoon leader in accordance with certain aspects of this disclosure. In this example, member vehicle 4061 is designated or elected as platoon leader. In some instances, the delegated tasks may relate to the identification and tracking of objects that may be located proximate to the platoon 404 or that may otherwise require the platoon 404 to adjust its trajectory, speed or route along a road 402. In some instances, the delegated tasks may include decision making tasks that provide input or feedback to assist the platoon leader in controlling the movement of the platoon 404.
[0048] The illustrated platoon 404 includes five member vehicles 4061-4065, each of which has been associated with the platoon 404. The operation of the member vehicles 4061-4065 in the platoon 404 may be managed by the platoon leader. In some examples, the platoon leader may be selected or elected based on physical location within the platoon 404. In these example, the platoon leader may occupy the forwardmost position of the member vehicles 4061-4065 in order to ensure fast and reliable receipt of input from front-facing cameras, sensors and other collision avoidance systems. In some examples, the platoon leader may be selected or elected based on computational capabilities, with physical location within the platoon 404 being of secondary importance. In certain of these example, the platoon leader may delegate collision avoidance responsibilities and / or related decision-making to the member vehicle 4061, 4062, 4063, 4064 or 4065 that occupies the forwardmost position in the platoon 404, although the platoon leader may retain some or all of the collision avoidance responsibilities and / or related decision-making.
[0049] In some implementations, the platoon leader may be selected or assigned based on a negotiation or registration process involving the member vehicles 4061-4065 of the platoon 404. In one example, the member vehicles 4061-4065 may be evaluated for platoon leadership based on an exchange of information identifying their computation capabilities and available computational capacities. In some instances, the platoon leader is elected by a vote of the platoon members. The platoon leader may be selected or elected when the platoon 404 is initially formed. The platoon leader may be replaced after a subsequent negotiation or registration process. In one example, the platoon leader may be replaced when a new addition to the platoon 404 has greater computation capability and / or available computational capacity. In another example, the platoon leader may be replaced when a new addition to the platoon 404 takes the forwardmost position in the platoon. In one example, the platoon leader may be replaced after reporting a degradation in available computational capacity. In one example, the platoon leader may be replaced after reporting an intention to leave the platoon 404, or after an unannounced disassociation with the platoon 404.
[0050] The platoon leader may manage and control the movement of the platoon 404. The platoon leader may select speed and direction of travel and may be responsible for selection of the route to be followed by the platoon 404. The platoon leader may define the speed at which the platoon 404 travels and the separation between member vehicles 4061-4065. The platoon leader may define speed and separation based on the capabilities of the member vehicles 4061-4065. In one aspect of this disclosure, the member vehicles 4061-4065 can negotiate the maximum and / or speed and separation expected of the member vehicles 4061-4065. The route to be followed by the platoon 404 may also be negotiated or selected to accommodate the needs of individual member vehicles 4061-4065. In one example, the platoon 404 may travel at or near maximum highway speeds with member vehicles 4061-4065 separated by a distance of one or two meters. At such distances, cameras and sensors in two or more member vehicles 4061-4065 may detect, recognize, perceive and / or track an object simultaneously.
[0051] In the illustrated example, the leading member vehicle 4061 is the designated platoon leader. The platoon leader may delegate certain tasks to one or more member vehicles 4061-4065. The platoon leader may delegate tasks based on information obtained from the member vehicles 4061-4065 during negotiation or registration processes. In some implementations, the member vehicles 4061-4065 may report status and processing capabilities to the platoon leader in response to a request or according to a predefined schedule. In some implementations, each member vehicle 4061-4065 shares status and processing capabilities with the other members of the platoon according to a predefined schedule.
[0052] The platoon leader is primarily responsible for platoon management and control. Platoon management may refer to operations and corresponding tasks that are related to managing and maintaining platoon membership. For example, platoon management typically includes managing member registration performed when a member joins the platoon 404, member deregistration performed when a member leaves the platoon 404, and member dismissal when the platoon 404 disassociates with one or more member vehicles 4061-4065. Platoon management may involve management of platoon identifiers that enables member vehicles 4061-4065 to be uniquely identified for the purpose of communication and registration. Control of the platoon 404 may be exercised through a combination of processes and procedures, including periodical status monitoring, route management and driving strategy configuration and maintenance. The driving strategy may include, for example, speed at which the platoon 404 travels and the separation between member vehicles 4061-4065. The efficiency and safety of platoon 404 relies on the precision and reliability of the real-time performance of the control system.
[0053] Each of the platoon members is expected to perceive, identify and track objects in its immediate vicinity. The immediate vicinity of a member vehicle 4061-4065 may be defined by the range of sensors or by predefined boundaries. In one example, the predefined boundaries may be determined based on speed, stopping distance, velocity of approach of an object and / or by physical boundaries, barriers or buildings. Each of the member vehicles 4061-4065 may perceive objects by capturing images of the objects using a camera and / or by determining location, dimensions or motion of an object using sensors such as radio detection and ranging or light detection and ranging. Each of the member vehicles 4061-4065 may be expected to perform some level of perceived object identification and tracking. In some instances, perceived object identification may include image recognition. In some instances, a perceived object may be tracked over some period of time defined by the velocity of the member vehicles 4061-4065 with respect to the object, and intervals defined the frame rate of a camera and / or the scan rate of sensor. In many implementations, perceived object identification and tracking computation can be performed by all of the member vehicles 4061-4065. For every object detected by sensor and communication system, one or more member vehicles 4061-4065 may be required to identify the object as an object that is already being tracked, or to initiate tracking of the object. Object identification and tracking information generated by one of the member vehicles 4061-4065 may be shared with other member vehicles 4061-4065 via SDSM. According to certain aspects of this disclosure, object identification and tracking information is communicated to the platoon leader and any delegates that perform tasks on behalf of the platoon leader. Object identification and tracking information can be essential to safety and efficiency and is generally communicated to the platoon leader and certain types of delegates that cooperate with the platoon leader.
[0054] Multiple objects in a scenario can affect the traveling strategy of the platoon 404. The platoon leader may need to process, or cause to be processed, the identification and tracking information collected and communicated by the member vehicles 4061-4065 in order to generate effective input data for an ADAS used to assist decision making related to the platoon 404. The computational overhead required for platoon management and control increases with platoon size and with number of objects are being tracked.
[0055] The use of computational assistants or delegates as disclosed herein can enable large platoons to be assembled and can permit a platoon 404 to operate safely in a high-density scenario, such as a city or busy highway. Two or more zones 412, 414 may be defined within an area to be monitored in the immediate vicinity of the platoon 404. A computational assistant or delegate may be assigned to process identification and tracking information collected and communicated by member vehicles 4061-4063 or 4063-4065 within one of the zones 412, 414. In one example, the platoon leader (i.e., member vehicle 4061) may retain responsibility for processing identification and tracking information collected and communicated by member vehicles 4061-4063 related to a first zone 412, while a computational assistant is selected to process identification and tracking information collected and communicated by member vehicles 4063-4065 related to a second zone 414. In another example, the platoon leader (i.e., member vehicle 4061) may delegate responsibility for processing identification and tracking information collected and communicated by member vehicles 4061-4063 related to the first zone 412 thereby enabling the platoon leader to focus on decision making related to platoon management and control.
[0056] FIG. 5 illustrates an example scenario 500 in which a platoon 504 includes a platoon leader and at least one computation assistant in accordance with certain aspects of this disclosure. In the illustrated example, the platoon 504 is traveling along a road 502. In this example, the platoon leader role is handled by member vehicle 5061 and member vehicle 5064 has been appointed computation assistant (CA) . Two zones 512, 514 are defined within an area to be monitored in the immediate vicinity of the platoon 504. In one example, the platoon leader delegates tasks associated with the aggregation and correlation of information related to the second zone 514 to the computation assistant. The information related to the second zone 514 may be provided by a subset or all of the member vehicles 5061-5065. The information may relate to object identification and tracking, and may include raw or processed image data, radio detection and ranging or light detection and ranging data and speed and direction data, including global positioning satellite (GPS) data. In some instances, the platoon leader may retain identification and tracking tasks for objects that are located within the first zone 512. In some instances, the platoon leader may delegate identification and tracking tasks for objects that are located within the first zone 512.
[0057] In the illustrated example, two remote vehicles 508, 510 are traveling in the same direction as the platoon 504 and in close proximity to the platoon 504. Each of the remote vehicles 508, 510 is located in a lane that is adjacent to the lane in which the platoon 504 is traveling, and each of the remote vehicles 508, 510 is at least partially side by side with one or the member vehicles 5061, 5065. Two pedestrians 522, 524 are included within the immediate vicinity of the platoon 504 in the illustrated example. One pedestrian 524 is located within the boundaries of the first zone 512 and the second zone 514, while the other pedestrian 522 is located within the boundaries of the second zone 514. The remote vehicles 508, 510 and pedestrians 522, 524 are representative of the types of objects to be identified and tracked by the platoon 504.
[0058] The platoon leader is primarily responsible for platoon management and control, in addition to sensing, identifying, and tracking objects in its vicinity. Platoon management may refer to operations and corresponding tasks that are related to managing and maintaining platoon membership. For example, platoon management typically includes managing member registration performed when a member joins the platoon 504, member deregistration performed when a member leaves the platoon 504, and member dismissal when the platoon 504 disassociates with one or more member vehicles 5061-5065. Platoon management may involve management of platoon identifiers that enables member vehicles 5061-5065 to be uniquely identified for the purpose of communication and registration. Control of the platoon 504 may be exercised through a combination of processes and procedures, including periodical status monitoring, route management and driving strategy configuration and maintenance. The driving strategy may include, for example, a trajectory and speed at which the platoon 504 travels and the separation between member vehicles 5061-5065. The efficiency and safety of platoon 504 relies on the precision and reliability of the real-time performance of the control system.
[0059] Each of the platoon members is expected to perceive, identify and track objects in its immediate vicinity. The immediate vicinity of a member vehicle 5061-5065 may be defined by the range of sensors or by predefined boundaries. In one example, the predefined boundaries may be determined based on speed, stopping distance, velocity of approach of an object and / or by physical boundaries, barriers or buildings. Each of the member vehicles 5061-5065 may perceive objects by capturing images of an object using a camera and / or by determining location, dimensions or motion of an object using sensors such as radio detection and ranging or light detection and ranging. Each of the member vehicles 5061-5065 may be expected to perform some level of perceived object identification and tracking. In some instances, perceived object identification may include image recognition. In some instances, a perceived object may be tracked over some period of time defined by the velocity of the member vehicles 5061-5065 with respect to the object, and intervals defined the frame rate of a camera and / or the scan rate of sensor.
[0060] In many implementations, perceived object identification and tracking computations can be the performed by all of the member vehicles 5061-5065. For every object detected by sensor and communication system, one or more member vehicles 5061-5065 may be required to identify the object as an object that is already being tracked, or to initiate tracking of the object. Object identification and tracking information generated by one of the member vehicles 5061-5065 may be shared with other member vehicles 5061-5065 via SDSM. According to certain aspects of this disclosure, object identification and tracking information is communicated to the platoon leader and any delegates that perform tasks on behalf of the platoon leader. Object identification and tracking information can be essential to safety and efficiency and is generally communicated to the platoon leader and certain types of delegates that cooperate with the platoon leader.
[0061] In some instances, the platoon leader may delegate tasks related to platoon management and control. The illustrated platoon 504 includes five member vehicles 5061-5065, each of which has been associated with the platoon 504. The operation of the member vehicles 5061-5065 in the platoon 504 may be managed by the platoon leader. The platoon leader may delegate certain tasks related to the management and control of one or more member vehicles 5062-5065 to the computation assistant.
[0062] In some examples, the platoon leader may be selected or elected based on physical location within the platoon 504. In these example, the platoon leader may occupy the forwardmost position of the member vehicles 5061-5065 in order to ensure fast and reliable receipt of input from front-facing cameras, sensors and other collision avoidance systems. In some examples, the platoon leader may be selected or elected based on computational capabilities, with physical location within the platoon 504 being of secondary importance. In certain of these example, the platoon leader may delegate collision avoidance responsibilities and / or related decision-making to the member vehicle 5061, 5062, 5063, 5064 or 5065 that occupies the forwardmost position in the platoon 504, although the platoon leader may retain some or all of the collision avoidance responsibilities and / or related decision-making.
[0063] In some implementations, the platoon leader may be selected or assigned based on a negotiation or registration process involving the member vehicles 5061-5065 of the platoon 504. In one example, the member vehicles 5061-5065 may be selected based on an exchange of information identifying their computation capabilities and available computational capacities. In some instances, the platoon leader is elected by a vote of the platoon members. The platoon leader may be selected or elected when the platoon 504 is initially formed. The platoon leader may be replaced after a subsequent negotiation or registration process. In one example, the platoon leader may be replaced when a new addition to the platoon 504 has greater computation capability and / or available computational capacity. In another example, the platoon leader may be replaced when a new addition to the platoon 504 takes the forwardmost position in the platoon. In one example, the platoon leader may be replaced after reporting a degradation in available computational capacity. In one example, the platoon leader may be replaced after reporting an intention to leave the platoon 504, or after an unannounced disassociation with the platoon 504.
[0064] The platoon leader may manage the movement of the platoon 504. The platoon leader may select speed and direction of travel and may be responsible for selection of the route to be followed by the platoon 504. Selection of the route to be followed by the platoon 504 includes determining one or more waypoints and an endpoint for the platoon 504. For the purposes of this description, waypoints and endpoints correspond to geographical locations. Each waypoint may correspond to a destination of one or more member vehicles 5061-5065 or a point of divergence of individual member vehicles 5061-5065 from the platoon 504. A point of divergence may occur when a planned or preferred route to the destination of a member vehicle 5061-5065 no longer coincides with the route to be followed by the platoon 504. The endpoint may correspond to a waypoint after which no pair of the member vehicles 5061-5065 is heading in a common direction. The waypoints and endpoints may be updated as new members associate with the platoon 504. In some instances, the waypoints and endpoints may be updated based on changing traffic conditions, or early departure of one or more member vehicles 5061-5065 from the platoon 504. In some examples, at least one member vehicle 5061-5065 is expected to leave the platoon 504 at each waypoint and at the endpoint. In some examples, the platoon 504 is expected to be disbanded at the endpoint.
[0065] The platoon leader may define the speed at which the platoon 504 travels and the separation between member vehicles 5061-5065. The platoon leader may define speed and separation based on the capabilities of the member vehicles 5061-5065. In one aspect of this disclosure, the member vehicles 5061-5065 can negotiate the maximum and / or speed and separation expected of the member vehicles 5061-5065, and the route to be followed by the platoon 504, the waypoints and the endpoint may also be negotiated or selected to accommodate the needs of individual member vehicles 5061-5065. In one example, the platoon 504 may travel at or near maximum highway speeds with member vehicles 5061- 5065 separated by a distance of one or two meters. At such distances, cameras and sensors in two or more member vehicles 5061-5065 may detect, recognize, perceive and / or track an object simultaneously.
[0066] The platoon leader may delegate certain tasks to one or more computation assistants. The platoon leader may delegate tasks based on information obtained from the member vehicles 5061-5065 during negotiation or registration processes. In some implementations, the computation assistant may report status and processing capabilities to the platoon leader in response to a request or according to a predefined schedule. In some implementations, each member vehicle 5061-5065 shares status and processing capabilities with the other members of the platoon according to a predefined schedule.
[0067] FIG. 6 includes a message flow diagram 600 that illustrates a registration procedure in accordance with certain aspects of this disclosure. The illustrated registration procedure relates to the remote vehicle 508 illustrated in FIG. 5. The remote vehicle 508 detects the presence of the platoon 504 and may determine from broadcast messages that the direction, destination and / or waypoints configured for the platoon 504 are compatible or consistent with the destination and mode of operation configured for the remote vehicle 508. The remote vehicle 508 may send the platoon leader a request to join the platoon through a message 602 that identifies the remote vehicle 508 using a unique identifier, and that indicates state of motion, a destination and capabilities of the remote vehicle 508. The capabilities of the remote vehicle 508 may include computation and perception capabilities. In some instances, the remote vehicle 508 may indicate availability of open resources (Open_res) .
[0068] The platoon leader may transmit a response to the remote vehicle 508 in a message 604 that provides a platoon membership identifier and one or more platoon properties. After the remote vehicle 508 has joined the platoon 504, it may transmit a further message 606 that includes more details regarding its motion and available computational resources. In one example, the remote vehicle 508 may indicate excess or available computational capacity. In some implementations, the newly joined remote vehicle 508 may indicate details of its perception capabilities including, for, example, an indication of quantity, configuration, orientation and resolution of cameras installed in the remote vehicle 508 and / or motion or proximity detection sensors.
[0069] FIG. 6 further includes a message flow diagram 610 that illustrates a procedure by which a platoon leader can appoint a selected member as a computation assistant in accordance with certain aspects of this disclosure. The platoon leader may rank the members of the platoon 504 in accordance with their respective available resources. The platoon leader may select one or more members of the platoon 504 to serve as a computation assistant based on the “available resource” ranking and as required by the current or expected computational load.
[0070] For each of the selected members of the platoon 504, the platoon leader may send an appointment message 612 to the selected member. The appointment message 612 may include a listing of the computation tasks to be handled by the selected member when acting as a computation assistant. The selected member may assistant member may transmit a response message 614 in response to the appointment message 612. The selected member may respond to the notification of their appointment with an acceptance by responding with an acknowledgement (Ack) , or may decline the appointment by responding with a negative acknowledgement (Nack) .
[0071] In various implementations, appointment messaging, including the appointment message 612 and the response message 614, may be implemented using existing periodic control messages or may be implemented using messages or a form of messaging reserved for the purpose of appointment messaging. In one example, the selected member in receipt of an appointment message 612 may respond with a customized appointment response message 616. The customized appointment response message 616 may provide additional control or status information.
[0072] The platoon leader may assign computation tasks to one or more computation assistants. The distributed computation task assignments may be primarily directed to objects information processing. The distributed computation task may correspond to one or more zones 512, 514 or based on relative location of the objects to be tracked, for example. The computation load of the platoon leader and appointed computation assistants may be shared based on physical location of the computation assistants or objects to be tracked relative to the platoon 504. Portions of the computation load of the platoon leader and appointed computation assistants may be shared and / or assigned based on computational capabilities and / or computational capacities. In some implementations, the platoon leader may delegate platoon management and control tasks to a computation assistant, including tasks related to platoon trajectory, speed and route.
[0073] FIG. 6 further includes a message flow diagram 620 that illustrates communication between a platoon leader a computation assistant in accordance with certain aspects of this disclosure. The illustrated example relates to an upload of results from the computation assistant to the platoon leader. The computation assistant may collect identification and tracking information related to one or more objects from internal sources of information and from other members of the platoon 504. Internal sources of information may be located in the vehicle that is performing the role of a computation assistant and may include sensors, imaging devices, radio detection and ranging devices or light detection and ranging devices. The computation assistant may remove all the redundancies from the collected information and may generate abstracted information related to one or more tracked objects. The computation assistant may further generate trajectory predictions for the related objects. Predicted trajectories may be calculated relative to the platoon 504.
[0074] In the example illustrated in FIG. 5, the computation assistant implemented in member vehicle 5064 may collect identification and tracking information related to remote vehicle 508 and both pedestrians 522, 524. The computation assistant may identify the remote vehicle 508 and both pedestrians 522, 524 using object recognition capabilities or functions and may determine trajectories for each object. The resulting object recognition and object tracking information may be transmitted to the platoon leader in a platoon control message 622 or in a customized computation report message 624.
[0075] According to certain aspects of this disclosure, a platoon of vehicles includes a lead vehicle and one or more platoon member vehicles. The platoon of vehicles may include autonomous vehicles and / or semi-autonomous vehicles. The platoon member vehicles are managed by the lead vehicle and communicate with the lead vehicle through a wireless data communication link. The lead vehicle has a processing circuit that is configured to determine computational capabilities of the one or more platoon member vehicles, determine perception capabilities of the one or more platoon member vehicles based on imaging devices or sensors provided in the one or more platoon member vehicles, select a first platoon member vehicle to operate as a computation assistant based on the computational capabilities and available computational capacity of the first platoon member vehicle, and assign one or more tasks to the first platoon member vehicle, the one or more tasks being related to identifying and tracking objects located proximate to the platoon of vehicles based on imaging or sensor data provided by at least one other platoon member vehicle. The processing circuit in the lead vehicle may configure a route or speed for the platoon of vehicles based on identification and tracking information generated by the first platoon member vehicle.
[0076] In one aspect, a first platoon member vehicle has a processing circuit that is configured to report computational capabilities of the first platoon member vehicle in response to a capabilities message received from the lead vehicle, report perception capabilities of the first platoon member vehicle in response to the capabilities message received from the lead vehicle. The reported perception capabilities may include a listing of imaging devices and sensors provided in the first platoon member vehicle. The processing circuit in the first platoon member may be further configured to receive an appointment message from the lead vehicle. The appointment message may appoint the first platoon member vehicle to serve as a computation assistant within the platoon of vehicles. The processing circuit in the first platoon member may be further configured to receive one or more task assignments from the lead vehicle after responding positively to the appointment message. The one or more task assignments may be related to identifying and tracking objects located proximate to the platoon of vehicles based on imaging or sensor data captured by the imaging devices and sensors provided in the first platoon member vehicle. The objects located proximate to the platoon of vehicles may be identified and tracked based on imaging or sensor data captured by imaging devices and sensors provided in at least one other platoon member vehicle. The processing circuit in the first platoon member may be further configured to report object identification and tracking information to the lead vehicle.
[0077] The processing circuit in the first platoon member may be further configured to modify a trajectory or speed of the first platoon member vehicle in response to a driving strategy message received from the lead vehicle. In one example, the route for the platoon of vehicles is configured by defining an endpoint and one or more waypoints at which at least one vehicle is expected to leave the platoon of vehicles.
[0078] In some implementations, the processing circuit in the lead vehicle may be further configured to divide an area surrounding and including the platoon of vehicles into a plurality of zones. Each zone may include one or more objects to be identified and tracked. The processing circuit in the first platoon member may be further configured to assign responsibility for identifying and tracking objects within a first zone to the first platoon member vehicle. The zones may be defined based on a computation load of the lead vehicle and the first platoon member vehicle.
[0079] The processing circuit in the lead vehicle may be further configured to receive a request to join the platoon of vehicles from a remote vehicle that is located within one of the plurality of zones. The processing circuit in the lead vehicle may transmit a platoon identifier to the remote vehicle as a positive response to the request to join the platoon of vehicles. The platoon identifier may identify the remote vehicle as a second platoon member vehicle. The processing circuit in the in the lead vehicle may be further configured to determine computational capabilities and perception capabilities of the second platoon member vehicle. The processing circuit in the lead vehicle may be further configured to send an appointment message to the second platoon member vehicle, and assign one or more identifying and tracking tasks to the second platoon member vehicle when the second platoon member transmits a positive response to the appointment message as an indication of acceptance of a computation assistant appointment.
[0080] Examples of Processing Circuits and Methods
[0081] FIG. 7 is a diagram illustrating an example of a hardware implementation for an apparatus 700. In some examples, the apparatus 700 may perform one or more functions disclosed herein. In accordance with various aspects of the disclosure, an element, or any portion of an element, or any combination of elements as disclosed herein may be implemented using a processing circuit 702. The processing circuit 702 may include one or more processors 704 that are controlled by some combination of hardware and software modules. Examples of processors 704 include microprocessors, microcontrollers, digital signal processors (DSPs) , SoCs, ASICs, field programmable gate arrays (FPGAs) , programmable logic devices (PLDs) , state machines, sequencers, gated logic, discrete hardware circuits, and other suitable hardware configured to perform the various functionality described throughout this disclosure. The one or more processors 704 may include specialized processors that perform specific functions, and that may be configured, augmented or controlled by one of the software modules 716. The one or more processors 704 may be configured through a combination of software modules 716 loaded during initialization, and further configured by loading or unloading one or more software modules 716 during operation.
[0082] In the illustrated example, the processing circuit 702 may be implemented with a bus architecture, represented generally by the bus 710. The bus 710 may include any number of interconnecting buses and bridges depending on the specific application of the processing circuit 702 and the overall design constraints. The bus 710 links together various circuits including the one or more processors 704, and storage 706. Storage 706 may include memory devices and mass storage devices, and may be referred to herein as computer-readable media and / or processor-readable media. The bus 710 may also link various other circuits such as timing sources, timers, peripherals, voltage regulators, and power management circuits. A bus interface 708 may provide an interface between the bus 710 and one or more transceivers 712a, 712b. A transceiver 712a, 712b may be provided for each networking technology supported by the processing circuit. In some instances, multiple networking technologies may share some or all of the circuitry or processing modules found in a transceiver 712a, 712b. Each transceiver 712a, 712b provides a means for communicating with various other apparatus over a transmission medium. In one example, a transceiver 712a may be used to couple the apparatus 700 to a multi-wire bus. In another example, a transceiver 712b may be used to connect the apparatus 700 to a radio access network. Depending upon the nature of the apparatus 700, a user interface 718 (e.g., keypad, display, speaker, microphone, joystick) may also be provided, and may be communicatively coupled to the bus 710 directly or through the bus interface 708.
[0083] A processor 704 may be responsible for managing the bus 710 and for general processing that may include the execution of software stored in a computer-readable medium that may include the storage 706. In this respect, the processing circuit 702, including the processor 704, may be used to implement any of the methods, functions and techniques disclosed herein. The storage 706 may be used for storing data that is manipulated by the processor 704 when executing software, and the software may be configured to implement certain methods disclosed herein.
[0084] One or more processors 704 in the processing circuit 702 may execute software. Software shall be construed broadly to mean instructions, instruction sets, code, code segments, program code, programs, subprograms, software modules, applications, software applications, software packages, routines, subroutines, objects, executables, threads of execution, procedures, functions, algorithms, etc., whether referred to as software, firmware, middleware, microcode, hardware description language, or otherwise. The software may reside in computer-readable form in the storage 706 or in an external computer-readable medium. The external computer-readable medium and / or storage 706 may include a non-transitory computer-readable medium. A non-transitory computer-readable medium includes, by way of example, a magnetic storage device (e.g., hard disk, floppy disk, magnetic strip) , an optical disk (e.g., a compact disc (CD) or a digital versatile disc (DVD) ) , a smart card, a flash memory device (e.g., a “flash drive, ” a card, a stick, or a key drive) , RAM, ROM, a programmable read-only memory (PROM) , an erasable PROM (EPROM) including EEPROM, a register, a removable disk, and any other suitable medium for storing software and / or instructions that may be accessed and read by a computer. The computer-readable medium and / or storage 706 may also include, by way of example, a carrier wave, a transmission line, and any other suitable medium for transmitting software and / or instructions that may be accessed and read by a computer. Computer-readable medium and / or the storage 706 may reside in the processing circuit 702, in the processor 704, external to the processing circuit 702, or be distributed across multiple entities including the processing circuit 702. The computer-readable medium and / or storage 706 may be embodied in a computer program product. By way of example, a computer program product may include a computer-readable medium in packaging materials. Those skilled in the art will recognize how best to implement the described functionality presented throughout this disclosure depending on the particular application and the overall design constraints imposed on the overall system.
[0085] The storage 706 may maintain software maintained and / or organized in loadable code segments, modules, applications, programs, etc., which may be referred to herein as software modules 716. Each of the software modules 716 may include instructions and data that, when installed or loaded on the processing circuit 702 and executed by the one or more processors 704, contribute to a run-time image 714 that controls the operation of the one or more processors 704. When executed, certain instructions may cause the processing circuit 702 to perform functions in accordance with certain methods, algorithms and processes described herein.
[0086] Some of the software modules 716 may be loaded during initialization of the processing circuit 702, and these software modules 716 may configure the processing circuit 702 to enable performance of the various functions disclosed herein. For example, some software modules 716 may configure internal devices and / or logic circuits 722 of the processor 704, and may manage access to external devices such as a transceiver 712a, 712b, the bus interface 708, the user interface 718, timers, mathematical coprocessors, and so on. The software modules 716 may include a control program and / or an operating system that interacts with interrupt handlers and device drivers, and that controls access to various resources provided by the processing circuit 702. The resources may include memory, processing time, access to a transceiver 712a, 712b, the user interface 718, and so on.
[0087] One or more processors 704 of the processing circuit 702 may be multifunctional, whereby some of the software modules 716 are loaded and configured to perform different functions or different instances of the same function. The one or more processors 704 may additionally be adapted to manage background tasks initiated in response to inputs from the user interface 718, the transceiver 712a, 712b, and device drivers, for example. To support the performance of multiple functions, the one or more processors 704 may be configured to provide a multitasking environment, whereby each of a plurality of functions is implemented as a set of tasks serviced by the one or more processors 704 as needed or desired. In one example, the multitasking environment may be implemented using a timesharing program 720 that passes control of a processor 704 between different tasks, whereby each task returns control of the one or more processors 704 to the timesharing program 720 upon completion of any outstanding operations and / or in response to an input such as an interrupt. When a task has control of the one or more processors 704, the processing circuit is effectively specialized for the purposes addressed by the function associated with the controlling task. The timesharing program 720 may include an operating system, a main loop that transfers control on a round-robin basis, a function that allocates control of the one or more processors 704 in accordance with a prioritization of the functions, and / or an interrupt driven main loop that responds to external events by providing control of the one or more processors 704 to a handling function.
[0088] In one example, the processing circuit 702 may be configured to implement a control system in a platoon lead vehicle. The processing circuit 702 may be coupled to imaging and / or sensors. In one example, the processing circuit 702 is coupled to multiple cameras mounted on the platoon lead vehicle. In another example, the processing circuit 702 is coupled to one or more radio detection and ranging sensors that are provided within the platoon lead vehicle. In another example, the processing circuit 702 is coupled to one or more light detection and ranging sensors that are provided within the platoon lead vehicle.
[0089] The processing circuit 702 may be configured to determine computational capabilities of member vehicles that are associated with a platoon of vehicles managed by the platoon lead vehicle. The platoon of vehicles may include autonomous vehicles and / or semi-autonomous vehicles. The processing circuit 702 may be further configured to determine perception capabilities of the member vehicles based on imaging devices or sensors provided in the member vehicles. The processing circuit 702 may be further configured to select a first member vehicle to operate as a computation assistant based on the computational capabilities and available computational capacity of the first member vehicle. The processing circuit 702 may be further configured to assign one or more tasks to the first member vehicle, the one or more tasks being related to identifying and tracking objects located proximate to the platoon of vehicles based on imaging or sensor data provided by at least one other member vehicle. The processing circuit 702 may be further configured to configure a route or speed for the platoon of vehicles based on identification and tracking information generated by the first member vehicle. In one example, the route for the platoon of vehicles is configured by defining and endpoint and one or more waypoints at which at least one vehicle is expected to leave the platoon of vehicles. The processing circuit 702 may be further configured to communicate with the member vehicles using wireless data communication links. in one example, the platoon lead vehicle is configured to communicate with the platoon of vehicles using a V2X communication protocol.
[0090] In some implementations, the processing circuit 702 is further configured to divide an area surrounding and including the platoon of vehicles into a plurality of zones, each zone including one or more objects to be identified and tracked. The processing circuit 702 may be further configured to assign responsibility for identifying and tracking objects within a first zone to the first member vehicle. The zones may be defined based on a computation load of the platoon lead vehicle and the first member vehicle. The processing circuit 702 may be further configured to receive a request to join the platoon of vehicles from a remote vehicle that is located within one of the plurality of zones. The processing circuit 702 may be further configured to transmit a platoon identifier to the remote vehicle as a positive response to the request to join the platoon of vehicles. The platoon identifier may identify the remote vehicle as a second platoon member. The processing circuit 702 may be further configured to determine computational capabilities and perception capabilities of the second platoon member. The processing circuit 702 may be further configured to send an appointment message to the second platoon member, and assign one or more identifying and tracking tasks to the second member vehicle when the second platoon member transmits a positive response to the appointment message as an indication of acceptance of a computation assistant appointment.
[0091] In another example, the processing circuit 702 may be configured to implement a control system in an autonomously or semi-autonomously operated vehicle. In this example, the processing circuit 702 may be configured to report computational capabilities of the autonomously or semi-autonomously operated vehicle in response to a capabilities message received from a lead vehicle in a platoon of vehicles and report perception capabilities of the autonomously or semi-autonomously operated vehicle in response to the capabilities message received from the lead vehicle. The reported perception capabilities may include a listing of imaging devices and the plurality of sensors provided in the autonomously or semi-autonomously operated vehicle. The processing circuit 702 may be further configured to receive an appointment message from the lead vehicle, the appointment message appointing the autonomously or semi-autonomously operated vehicle to serve as a computation assistant within the platoon of vehicles. The processing circuit 702 may be further configured to receive one or more task assignments from the lead vehicle after responding positively to the appointment message. The one or more task assignments may be related to identifying and tracking objects located proximate to the platoon of vehicles based on imaging or sensor data captured by the imaging devices and the plurality of sensors and by at least one other vehicle in the platoon of vehicles. The processing circuit 702 may be further configured to report object identification and tracking information to the lead vehicle. The processing circuit 702 may be further configured to modify a trajectory or speed of the autonomously or semi-autonomously operated vehicle in response to a driving strategy message received from the lead vehicle.
[0092] In certain implementations, the processing circuit 702 is further configured to generate object identification and tracking information related to objects within a zone associated with the platoon of vehicles. Objects in a different zone may be identified and tracked by the lead vehicle or by another computation assistant. A plurality of zones may be defined within an area surrounding and including the platoon of vehicles. The processing circuit 702 may be further configured to transmit a request to join the platoon of vehicles while operating independently as a remote vehicle that is located within one of the plurality of zones. The processing circuit 702 may be further configured to receive an identifier from the lead vehicle. The identifier may enable the autonomously or semi-autonomously operated vehicle to operate in accordance with control messages received from the lead vehicle. The identifier may enable the autonomously or semi-autonomously operated vehicle to operate in accordance with control messages received from one or more computation assistants.
[0093] FIG. 8 is a flowchart 800 of a method for managing a platoon of vehicles. The platoon of vehicles may include autonomous vehicles and / or semi-autonomous vehicles. The vehicles may be operated autonomously and / or in a self-drive mode. Each vehicle in the platoon of vehicles may operate in accordance with a driving strategy defined by a platoon lead vehicle. The platoon of vehicles may be traveling along a route under the management of the platoon lead vehicle. The platoon lead vehicle may be configured to communicate with the platoon of vehicles using a V2X communication protocol. Each vehicle in the platoon of vehicles may be associated with a waypoint along the route that corresponds to a destination or a point of divergence from the platoon. Individual members of the platoon of vehicles may separate or be separated from the platoon at a waypoint. An endpoint for the route may correspond to an expected waypoint after which the platoon includes a single member vehicle.
[0094] At block 802, the platoon lead vehicle may determine computational capabilities of member vehicles that are associated with the platoon of vehicles managed by the platoon lead vehicle. At block 804, the platoon lead vehicle may determine perception capabilities of the member vehicles based on imaging devices or sensors provided in the member vehicles. At block 806, the platoon lead vehicle may select a first member vehicle to operate as a computation assistant based on the computational capabilities and available computational capacity of the first member vehicle. At block 808, the platoon lead vehicle may assign one or more tasks to the first member vehicle. The one or more tasks may be related to identifying and tracking objects located proximate to the platoon of vehicles. The objects may be identified and tracked based on imaging or sensor data provided by at least one other member vehicle. At block 810, the platoon lead vehicle may configure the route or speed for the platoon of vehicles based on identification and tracking information generated by the first member vehicle.
[0095] In one example, the route for the platoon of vehicles is configured by defining an endpoint and one or more waypoints at which at least one vehicle is expected to leave the platoon of vehicles.
[0096] In one example, the platoon lead vehicle may divide an area surrounding and including the platoon of vehicles into a plurality of zones. Each zone may include one or more objects to be identified and tracked. The platoon lead vehicle may assign responsibility for identifying and tracking objects within a first zone to the first member vehicle. The zones may be defined based on a computation load of the platoon lead vehicle and the first member vehicle. The platoon lead vehicle may receive a request to join the platoon of vehicles from a remote vehicle that is located within one of the plurality of zones. The platoon lead vehicle may transmit a platoon identifier to the remote vehicle as a positive response to the request to join the platoon of vehicles. The platoon identifier may identify the remote vehicle as a second platoon member. The platoon lead vehicle may determine computational capabilities and perception capabilities of the second platoon member. The platoon lead vehicle may send an appointment message to the second platoon member. The platoon lead vehicle may assign one or more identifying and tracking tasks to the second member vehicle when the second platoon member transmits a positive response to the appointment message as an indication of acceptance of a computation assistant appointment.
[0097] FIG. 9 is a diagram illustrating a first example of a hardware implementation for an apparatus 900 employing a processing circuit 902. The processing circuit typically has one or more microprocessors, microcontrollers, digital signal processors, sequencers and / or state machines, represented generally by the processors 916. The processing circuit 902 may be implemented with a bus architecture, represented generally by the bus 920. The bus 920 may include any number of interconnecting buses and bridges depending on the specific application of the processing circuit 902 and the overall design constraints. The bus 920 links together various circuits including multiple processors 916, the modules or circuits 904, 906 and 908 and the processor-readable storage medium 918. A bus interface circuit and / or module 914 may be provided to support communications over multiple serial links 912. The bus 920 may also link various other circuits such as timing sources, peripherals, voltage regulators, and power management circuits, which are well known in the art, and therefore, will not be described any further.
[0098] The processors 916 may be responsible for general processing, including the execution of software, code and / or instructions stored on the processor-readable storage medium 918. The processor-readable storage medium 918 may include a non-transitory storage medium. The software, when executed by the processors 916, causes the processing circuit 902 to perform the various functions described supra for any particular apparatus. The processor-readable storage medium may be used for storing data that is manipulated by the processors 916 when executing software. The processing circuit 902 further includes at least one of the modules 904, 906 and 908. The modules 904, 906 and 908 may be software modules running in the processors 916, resident / stored in the processor-readable storage medium 918, one or more hardware modules coupled to the processors 916, or some combination thereof. The modules 904, 906 and 908 may include microcontroller instructions, state machine configuration parameters, or some combination thereof.
[0099] In one configuration, the apparatus 900 includes modules and / or circuits 904 configured or adapted to control and manage an autonomously or semi-autonomously operated vehicle and, in some instances, a platoon of vehicles. The platoon of vehicles may include autonomously operated vehicles and semi-autonomously operated vehicles. The apparatus 900 may further include modules and / or circuits 906 configured or adapted to process image data. In one example, these modules and / or circuits 906 can perform certain functions as part of an autonomous driving or assisted driving subsystem. The apparatus 900 may further include modules and / or circuits 908 configured or adapted to monitor status and operation of the vehicle, of a vehicle management system and / or image data and the modules and / or circuits 906 configured or adapted to process image data. The status monitoring modules and / or circuits 908 may generate object identification and tracking information in cooperation with modules and / or circuits 906 configured or adapted to process image data.
[0100] The apparatus 900 may include means for determining capabilities of member vehicles that are associated with a platoon of vehicles managed by the platoon lead vehicle. The capabilities may include computational and perception capabilities. The perception capabilities may be based on imaging devices or sensors provided in the member vehicles. The apparatus 900 may include means for appointing computation assistants. The means for appointing computation assistants may include a processing circuit 902 configured to select a first member vehicle to operate as a computation assistant based on the computational capabilities and available computational capacity of the first member vehicle. The processing circuit 902 may be further configured to assign one or more tasks to the first member vehicle. The one or more tasks may be related to identifying and tracking objects located proximate to the platoon of vehicles. The objects may be identified and tracked based on imaging or sensor data provided by at least one other member vehicle. The processing circuit 902 may configure the route or speed for the platoon of vehicles based on identification and tracking information generated by the first member vehicle.
[0101] In one example, the route for the platoon of vehicles is configured by defining an endpoint and one or more waypoints at which at least one vehicle is expected to leave the platoon of vehicles.
[0102] In one example, the platoon lead vehicle may divide an area surrounding and including the platoon of vehicles into a plurality of zones. Each zone may include one or more objects to be identified and tracked. The platoon lead vehicle may assign responsibility for identifying and tracking objects within a first zone to the first member vehicle. The zones may be defined based on a computation load of the platoon lead vehicle and the first member vehicle. The platoon lead vehicle may receive a request to join the platoon of vehicles from a remote vehicle that is located within one of the plurality of zones. The platoon lead vehicle may transmit a platoon identifier to the remote vehicle as a positive response to the request to join the platoon of vehicles. The platoon identifier may identify the remote vehicle as a second platoon member. The platoon lead vehicle may determine computational capabilities and perception capabilities of the second platoon member. The platoon lead vehicle may send an appointment message to the second platoon member. The platoon lead vehicle may assign one or more identifying and tracking tasks to the second member vehicle when the second platoon member transmits a positive response to the appointment message as an indication of acceptance of a computation assistant appointment.
[0103] Some implementation examples are described in the following numbered clauses:
[0104] 1. A control system in a platoon lead vehicle, comprising: a plurality of imaging devices; a plurality of sensors; a processing circuit configured to: determine computational capabilities of member vehicles that are associated with a platoon of vehicles managed by the platoon lead vehicle; determine perception capabilities of the member vehicles based on imaging devices or sensors provided in the member vehicles; select a first member vehicle to operate as a computation assistant based on the computational capabilities and available computational capacity of the first member vehicle; assign one or more tasks to the first member vehicle, the one or more tasks being related to identifying and tracking objects located proximate to the platoon of vehicles based on imaging or sensor data provided by at least one other member vehicle; and configure a route or speed for the platoon of vehicles based on identification and tracking information generated by the first member vehicle; and a plurality of data communication links, each data communication link coupling at least one of the plurality of imaging devices with the processing circuit.
[0105] 2. The control system as described in clause 1, wherein the route for the platoon of vehicles is configured by defining an endpoint and one or more waypoints at which at least one vehicle is expected to leave the platoon of vehicles.
[0106] 3. The control system as described in clause 1 or clause 2, wherein the processing circuit is further configured to: divide an area surrounding and including the platoon of vehicles into a plurality of zones, each zone including one or more objects to be identified and tracked; and assign responsibility for identifying and tracking objects within a first zone to the first member vehicle.
[0107] 4. The control system as described in clause 3, wherein the zones are defined based on a computation load of the platoon lead vehicle and the first member vehicle.
[0108] 5. The control system as described in clause 3 or clause 4, wherein the processing circuit is further configured to: receive a request to join the platoon of vehicles from a remote vehicle that is located within one of the plurality of zones; transmit a platoon identifier to the remote vehicle as a positive response to the request to join the platoon of vehicles, the platoon identifier identifying the remote vehicle as a second member vehicle; and determine computational capabilities and perception capabilities of the second member vehicle.
[0109] 6. The control system as described in clause 5, wherein the processing circuit is further configured to: send an appointment message to the second member vehicle; and assign one or more identifying and tracking tasks to the second member vehicle when the second member vehicle transmits a positive response to the appointment message as an indication of acceptance of a computation assistant appointment.
[0110] 7. The control system in any of clauses 1-6, wherein the platoon lead vehicle is configured to communicate with the platoon of vehicles using a vehicle-to-everything (V2X) communication protocol.
[0111] 8. A control system in a vehicle, comprising: a plurality of imaging devices; a plurality of sensors; a processing circuit configured to: report computational capabilities of the vehicle in response to a capabilities message received from a lead vehicle in a platoon of vehicles; report perception capabilities of the vehicle in response to the capabilities message received from the lead vehicle, the reported perception capabilities including a listing of the imaging devices and the plurality of sensors; receive an appointment message from the lead vehicle, the appointment message appointing the vehicle to serve as a computation assistant within the platoon of vehicles; receive one or more task assignments from the lead vehicle after responding positively to the appointment message, the one or more task assignments being related to identifying and tracking objects located proximate to the platoon of vehicles based on imaging or sensor data captured by the imaging devices and the plurality of sensors and by at least one other vehicle in the platoon of vehicles; report object identification and tracking information to the lead vehicle; and modify a trajectory or speed of the vehicle in response to a driving strategy message received from the lead vehicle; and a plurality of data communication links, each data communication link coupling at least one of the plurality of imaging devices with the processing circuit.
[0112] 9. The control system as described in clause 8, wherein the processing circuit is further configured to generate object identification and tracking information related to objects within a zone associated with the platoon of vehicles, wherein objects in a different zone are identified and tracked by the lead vehicle or by another computation assistant.
[0113] 10. The control system as described in clause 9, wherein a plurality of zones is defined within an area surrounding and including the platoon of vehicles.
[0114] 11. The control system as described in clause 10, wherein the processing circuit is further configured to: transmit a request to join the platoon of vehicles while operating independently as a remote vehicle that is located within one of the plurality of zones; and receive an identifier from the lead vehicle, the identifier enabling the vehicle to operate in accordance with control messages received from the lead vehicle.
[0115] 12. The control system as described in clause 11, wherein the identifier enables the vehicle to operate in accordance with control messages received from one or more computation assistants.
[0116] 13. The control system in any of clauses 8-12, wherein the vehicle is configured to communicate with vehicles in the platoon of vehicles using a vehicle-to-everything (V2X) communication protocol.
[0117] 14. A platoon management system, comprising: a lead vehicle in a platoon of vehicles; and one or more platoon member vehicles that are managed by the lead vehicle and that communicate with the lead vehicle through a wireless data communication link, wherein the lead vehicle has a processing circuit that is configured to: determine computational capabilities of the one or more platoon member vehicles; determine perception capabilities of the one or more platoon member vehicles based on imaging devices or sensors provided in the one or more platoon member vehicles; select a first platoon member vehicle to operate as a computation assistant based on the computational capabilities and available computational capacity of the first platoon member vehicle; assign one or more tasks to the first platoon member vehicle, the one or more tasks being related to identifying and tracking objects located proximate to the platoon of vehicles based on imaging or sensor data provided by at least one other platoon member vehicle; and configure a route or speed for the platoon of vehicles based on identification and tracking information generated by the first platoon member vehicle, and wherein the first platoon member vehicle has a processing circuit that is configured to: report computational capabilities of the first platoon member vehicle in response to a capabilities message received from the lead vehicle; report perception capabilities of the first platoon member vehicle in response to the capabilities message received from the lead vehicle, the reported perception capabilities including a listing of imaging devices and sensors provided in the first platoon member vehicle; receive an appointment message from the lead vehicle, the appointment message appointing the first platoon member vehicle to serve as a computation assistant within the platoon of vehicles; receive one or more task assignments from the lead vehicle after responding positively to the appointment message, the one or more task assignments being related to identifying and tracking objects located proximate to the platoon of vehicles based on imaging or sensor data captured by the imaging devices and sensors provided in the first platoon member vehicle and by imaging or sensor data captured by imaging devices and sensors provided in at least one other platoon member vehicle; report object identification and tracking information to the lead vehicle; and modify a trajectory or speed of the first platoon member vehicle in response to a driving strategy message received from the lead vehicle.
[0118] 15. The platoon management system as described in clause 14, wherein the route for the platoon of vehicles is configured by defining an endpoint and one or more waypoints at which at least one vehicle is expected to leave the platoon of vehicles.
[0119] 16. The platoon management system as described in clause 14 or clause 15, wherein the processing circuit in the lead vehicle is further configured to: divide an area surrounding and including the platoon of vehicles into a plurality of zones, each zone including one or more objects to be identified and tracked; and assign responsibility for identifying and tracking objects within a first zone to the first platoon member vehicle.
[0120] 17. The platoon management system as described in clause 16, wherein the zones are defined based on a computation load of the lead vehicle and the first platoon member vehicle.
[0121] 18. The platoon management system as described in clause 16 or clause 17, wherein the processing circuit in the lead vehicle is further configured to: receive a request to join the platoon of vehicles from a remote vehicle that is located within one of the plurality of zones; transmit a platoon identifier to the remote vehicle as a positive response to the request to join the platoon of vehicles, the platoon identifier identifying the remote vehicle as a second platoon member vehicle; and determine computational capabilities and perception capabilities of the second platoon member vehicle.
[0122] 19. The platoon management system as described in clause 18, wherein the processing circuit in the lead vehicle is further configured to: send an appointment message to the second platoon member vehicle; and assign one or more identifying and tracking tasks to the second platoon member vehicle when the second platoon member transmits a positive response to the appointment message as an indication of acceptance of a computation assistant appointment.
[0123] 20. The platoon management system in any of clauses 14-19, wherein the lead vehicle is configured to communicate with the platoon of vehicles using a vehicle-to-everything (V2X) communication protocol.
[0124] It is understood that the specific order or hierarchy of steps in the processes disclosed is an illustration of exemplary approaches. Based upon design preferences, it is understood that the specific order or hierarchy of steps in the processes may be rearranged. Further, some steps may be combined or omitted. The accompanying method claims present elements of the various steps in a sample order, and are not meant to be limited to the specific order or hierarchy presented.
[0125] The previous description is provided to enable any person skilled in the art to practice the various aspects described herein. Various modifications to these aspects will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other aspects. Thus, the claims are not intended to be limited to the aspects shown herein, but is to be accorded the full scope consistent with the language claims, wherein reference to an element in the singular is not intended to mean “one and only one” unless specifically so stated, but rather “one or more. ” Unless specifically stated otherwise, the term “some” refers to one or more. All structural and functional equivalents to the elements of the various aspects described throughout this disclosure that are known or later come to be known to those of ordinary skill in the art are expressly incorporated herein by reference and are intended to be encompassed by the claims. Moreover, nothing disclosed herein is intended to be dedicated to the public regardless of whether such disclosure is explicitly recited in the claims. No claim element is to be construed as a means plus function unless the element is expressly recited using the phrase “means for. ”
Claims
1.A control system in a platoon lead vehicle, comprising:a plurality of imaging devices;a plurality of sensors;a processing circuit configured to:determine computational capabilities of member vehicles that are associated with a platoon of vehicles managed by the platoon lead vehicle;determine perception capabilities of the member vehicles based on imaging devices or sensors provided in the member vehicles;select a first member vehicle to operate as a computation assistant based on the computational capabilities and available computational capacity of the first member vehicle;assign one or more tasks to the first member vehicle, the one or more tasks being related to identifying and tracking objects located proximate to the platoon of vehicles based on imaging or sensor data provided by at least one other member vehicle; andconfigure a route or speed for the platoon of vehicles based on identification and tracking information generated by the first member vehicle; anda plurality of data communication links, each data communication link coupling at least one of the plurality of imaging devices with the processing circuit.2.The control system of claim 1, wherein the route for the platoon of vehicles is configured by defining an endpoint and one or more waypoints at which at least one vehicle is expected to leave the platoon of vehicles.3.The control system of claim 1, wherein the processing circuit is further configured to:divide an area surrounding and including the platoon of vehicles into a plurality of zones, at least one zone of the plurality of zones including one or more objects to be identified and tracked; andassign responsibility for identifying and tracking objects within the at least one zone to the first member vehicle.4.The control system of claim 3, wherein the plurality of zones is defined based on a computation load of the platoon lead vehicle and the first member vehicle.5.The control system of claim 3, wherein the processing circuit is further configured to:receive a request to join the platoon of vehicles from a remote vehicle that is located within one of the plurality of zones;transmit a platoon identifier to the remote vehicle as a positive response to the request to join the platoon of vehicles, the platoon identifier identifying the remote vehicle as a second member vehicle; anddetermine computational capabilities and perception capabilities of the second member vehicle.6.The control system of claim 5, wherein the processing circuit is further configured to:send an appointment message to the second member vehicle; andassign one or more identifying and tracking tasks to the second member vehicle when the second member vehicle transmits a positive response to the appointment message as an indication of acceptance of a computation assistant appointment.7.The control system of claim 1, wherein the platoon lead vehicle is configured to communicate with the platoon of vehicles using a vehicle-to-everything (V2X) communication protocol.8.A control system in a vehicle, comprising:a plurality of imaging devices;a plurality of sensors;a processing circuit configured to:report computational capabilities of the vehicle in response to a capabilities message received from a lead vehicle in a platoon of vehicles;report perception capabilities of the vehicle in response to the capabilities message received from the lead vehicle, the reported perception capabilities including a listing of the imaging devices and the plurality of sensors;receive an appointment message from the lead vehicle, the appointment message appointing the vehicle to serve as a computation assistant within the platoon of vehicles;receive one or more task assignments from the lead vehicle after responding positively to the appointment message, the one or more task assignments being related to identifying and tracking objects located proximate to the platoon of vehicles based on imaging or sensor data captured by the imaging devices and the plurality of sensors and by at least one other vehicle in the platoon of vehicles;report object identification and tracking information to the lead vehicle; andmodify a trajectory or speed of the vehicle in response to a driving strategy message received from the lead vehicle; anda plurality of data communication links, each data communication link coupling at least one of the plurality of imaging devices with the processing circuit.9.The control system of claim 8, wherein the processing circuit is further configured to generate object identification and tracking information related to objects within a zone associated with the platoon of vehicles, wherein objects in a different zone are identified and tracked by the lead vehicle or by another computation assistant.10.The control system of claim 9, wherein a plurality of zones is defined within an area surrounding and including the platoon of vehicles.11.The control system of claim 10, wherein the processing circuit is further configured to:transmit a request to join the platoon of vehicles while operating independently as a remote vehicle that is located within one of the plurality of zones; andreceive an identifier from the lead vehicle, the identifier enabling the vehicle to operate in accordance with control messages received from the lead vehicle.12.The control system of claim 11, wherein the identifier enables the vehicle to operate in accordance with control messages received from one or more computation assistants.13.The control system of claim 8, wherein the vehicle is configured to communicate with vehicles in the platoon of vehicles using a vehicle-to-everything (V2X) communication protocol.14.A platoon management system, comprising:a lead vehicle in a platoon of vehicles; andone or more platoon member vehicles that are managed by the lead vehicle and that communicate with the lead vehicle through a wireless data communication link,wherein the lead vehicle has a processing circuit that is configured to:determine computational capabilities of the one or more platoon member vehicles;determine perception capabilities of the one or more platoon member vehicles based on imaging devices or sensors provided in the one or more platoon member vehicles;select a first platoon member vehicle to operate as a computation assistant based on the computational capabilities and available computational capacity of the first platoon member vehicle;assign one or more tasks to the first platoon member vehicle, the one or more tasks being related to identifying and tracking objects located proximate to the platoon of vehicles based on imaging or sensor data provided by at least one other platoon member vehicle; andconfigure a route or speed for the platoon of vehicles based on identification and tracking information generated by the first platoon member vehicle, andwherein the first platoon member vehicle has a processing circuit that is configured to:report computational capabilities of the first platoon member vehicle in response to a capabilities message received from the lead vehicle;report perception capabilities of the first platoon member vehicle in response to the capabilities message received from the lead vehicle, the reported perception capabilities including a listing of imaging devices and sensors provided in the first platoon member vehicle;receive an appointment message from the lead vehicle, the appointment message appointing the first platoon member vehicle to serve as a computation assistant within the platoon of vehicles;receive one or more task assignments from the lead vehicle after responding positively to the appointment message, the one or more task assignments being related to identifying and tracking objects located proximate to the platoon of vehicles based on imaging or sensor data captured by the imaging devices and sensors provided in the first platoon member vehicle and by imaging or sensor data captured by imaging devices and sensors provided in at least one other platoon member vehicle;report object identification and tracking information to the lead vehicle; andmodify a trajectory or speed of the first platoon member vehicle in response to a driving strategy message received from the lead vehicle.15.The platoon management system of claim 14, wherein the route for the platoon of vehicles is configured by defining an endpoint and one or more waypoints at which at least one vehicle is expected to leave the platoon of vehicles.16.The platoon management system of claim 14, wherein the processing circuit in the lead vehicle is further configured to:divide an area surrounding and including the platoon of vehicles into a plurality of zones, each zone including one or more objects to be identified and tracked; andassign responsibility for identifying and tracking objects within a first zone to the first platoon member vehicle.17.The platoon management system of claim 16, wherein the zones are defined based on a computation load of the lead vehicle and the first platoon member vehicle.18.The platoon management system of claim 16, wherein the processing circuit in the lead vehicle is further configured to:receive a request to join the platoon of vehicles from a remote vehicle that is located within one of the plurality of zones;transmit a platoon identifier to the remote vehicle as a positive response to the request to join the platoon of vehicles, the platoon identifier identifying the remote vehicle as a second platoon member vehicle; anddetermine computational capabilities and perception capabilities of the second platoon member vehicle.19.The platoon management system of claim 18, wherein the processing circuit in the lead vehicle is further configured to:send an appointment message to the second platoon member vehicle; andassign one or more identifying and tracking tasks to the second platoon member vehicle when the second platoon member vehicle transmits a positive response to the appointment message as an indication of acceptance of a computation assistant appointment.20.The platoon management system of claim 14, wherein the lead vehicle is configured to communicate with the platoon of vehicles using a vehicle-to-everything (V2X) communication protocol.