Low bandwidth protocol for streaming sensor data
Provided are systems, methods and computer program code for transmitting vehicle data to remote monitoring systems using a low bandwidth protocol.
1 . A method performed by a user device for remote monitoring of an autonomous vehicle, comprising:
transmitting to a remote system an identification of the autonomous vehicle to be monitored;
in response to providing the identification to the remote system, receiving from the remote system a plurality of data frames associated with the autonomous vehicle, the plurality of data frames having one or more of a plurality of data types, the plurality of data types comprising vehicle signal data, vehicle diagnostic data, and object data, each frame in the plurality of data frames comprising a timestamp and a sequence ID;
assembling the received plurality of data frames based on data type, sequence ID, and timestamp to reconstruct an ordered sequence of telemetry data for the autonomous vehicle;
making a determination that a particular data type is one that requires a particular context map, the particular context map associating each of a plurality of message identifiers with a corresponding plurality of message labels, wherein data frames of the particular data type each further comprise at least one message identifier;
based on the determination, generating using the particular context map a message label for each data frame of the particular data type based on the corresponding message identifier; and
displaying the plurality of data frames and generated message labels on a user interface of the user device.
2 . The method of claim 1 , wherein data frames of the particular data type each further comprise a context identifier, the method further comprising selecting the particular context map from a plurality of context maps based on the context identifier.
3 . The method of claim 1 , further comprising transmitting to the remote system the particular data type, wherein the plurality of data frames are of the particular data type.
4 . The method of claim 1 , wherein the identification of the autonomous vehicle is provided by a remote user.
5 . The method of claim 1 , wherein the generated message label for each data frame is of a greater size than the corresponding message identifier.
6 . The method of claim 1 , wherein the particular context map is a current context map.
7 . The method of claim 1 , wherein the particular data type is vehicle diagnostic data.
8 . The method of claim 7 , wherein the particular context map is a mapping of vehicle diagnostic data status names to integers.
9 . The method of claim 1 , further comprising:
displaying the plurality of data frames and generated message labels in a first display area within the user interface;
receiving streaming data from the autonomous vehicle; and
displaying the streaming data in the user interface in a second display area within the user interface, separate from the first display area.
10 . The method of claim 9 , wherein displaying the streaming data is time-synchronized with displaying the plurality of data frames.
11 . A non-transitory computer-readable medium storing a program for remote monitoring of an autonomous vehicle, which when executed by a computer, configures the computer to:
transmit to a remote system an identification of the autonomous vehicle to be monitored;
in response to providing the identification to the remote system, receive from the remote system a plurality of data frames associated with the autonomous vehicle, the plurality of data frames having one or more of a plurality of data types, the plurality of data types comprising vehicle signal data, vehicle diagnostic data, and object data, each frame in the plurality of data frames comprising a timestamp and a sequence ID;
assemble the received plurality of data frames based on data type, sequence ID, and timestamp to reconstruct an ordered sequence of telemetry data for the autonomous vehicle;
make a determination that a particular data type is one that requires a particular context map, the particular context map associating each of a plurality of message identifiers with a corresponding plurality of message labels, wherein data frames of the particular data type each further comprise at least one message identifier;
based on the determination, generate using the particular context map a message label for each data frame of the particular data type based on the corresponding message identifier; and
display the plurality of data frames and generated message labels on a user interface.
12 . The non-transitory computer-readable medium of claim 11 , wherein data frames of the particular data type each further comprise a context identifier, and wherein the program, when executed by the computer, further configures the computer to select the particular context map from a plurality of context maps based on the context identifier.
13 . The non-transitory computer-readable medium of claim 11 , wherein the generated message label for each data frame is of a greater size than the corresponding message identifier.
14 . The non-transitory computer-readable medium of claim 11 , wherein the particular data type is vehicle diagnostic data.
15 . The non-transitory computer-readable medium of claim 14 , wherein the particular context map is a mapping of vehicle diagnostic data status names to integers.
16 . The non-transitory computer-readable medium of claim 11 , wherein the program, when executed by the computer, further configures the computer to:
display the plurality of data frames and generated message labels in a first display area within the user interface;
receive streaming data from the autonomous vehicle; and
display the streaming data in the user interface in a second display area within the user interface, separate from the first display area,
wherein the display of the streaming data is time-synchronized with the display of the plurality of data frames.
17 . A system for remote monitoring of an autonomous vehicle, comprising:
a memory configured to store data frames received from a remote system; and
a processor configured to:
transmit to the remote system an identification of the autonomous vehicle to be monitored;
in response to providing the identification, receive from the remote system a plurality of data frames associated with the autonomous vehicle, the plurality of data frames having one or more of a plurality of data types, the plurality of data types comprising vehicle signal data, vehicle diagnostic data, and object data, each frame in the plurality of data frames comprising a timestamp and a sequence ID;
assemble the received plurality of data frames based on data type, sequence ID, and timestamp to reconstruct an ordered sequence of telemetry data for the autonomous vehicle;
make a determination that a particular data type is one that requires a particular context map, the particular context map associating each of a plurality of message identifiers with a corresponding plurality of message labels, wherein data frames of the particular data type each further comprise at least one message identifier;
based on the determination, generate using the particular context map a message label for each data frame of the particular data type based on the corresponding message identifier; and
display the plurality of data frames and generated message labels on a user interface,
wherein the generated message label for each data frame is of a greater size than the corresponding message identifier.
18 . The system of claim 17 , wherein data frames of the particular data type each further comprise a context identifier, and wherein the processor is further configured to select the particular context map from a plurality of context maps based on the context identifier.
19 . The system of claim 17 , wherein the particular data type is vehicle diagnostic data, and the particular context map is a mapping of vehicle diagnostic data status names to integers.
20 . The system of claim 17 , wherein the processor is further configured to:
display the plurality of data frames and generated message labels in a first display area within the user interface;
receive streaming data from the autonomous vehicle; and
display the streaming data in the user interface in a second display area within the user interface, separate from the first display area.