The instant specification generally relates to autonomous vehicles. More specifically, the instant specification relates to implementing mass distribution-informed optimization with respect to the autonomous vehicles.
An autonomous vehicle (AV) operates by sensing an outside environment with various sensors and charting a driving path through the environment based on the sensed data, Global Positioning System (GPS) data, and road map data. Among the autonomous vehicles are trucks used for long-distance load deliveries. Trucking industry is sensitive to various costs such as fuel costs, maintenance, and repairs. To improve fuel efficiency, reduce collision risk, and reduce wear-and-tear of vehicles, human truck drivers use a variety of driving techniques, such as maintaining a constant speed whenever possible, accelerating through downhill sections of the road in order to acquire an additional momentum to carry the vehicle into subsequent uphill sections, and other techniques, which can be equally useful for autonomous vehicles. Successful implementations of such methods, however, can depend on the road and vehicle conditions. Higher efficiency is usually achieved when traffic is light. Conversely, presence of a large number of other trucks, carrying different loads and moving with different speeds, as well as passenger cars, motorhomes, and other vehicles is often detrimental to driving performance. Challenging weather conditions can introduce further uncertainty and increase costs while negatively affecting expected delivery times.
The disclosure is illustrated by way of examples, and not by way of limitation, and can be more fully understood with references to the following detailed description when considered in connection with the figures, in which:
In one embodiment, disclosed is a method including identifying sensor data associated with corresponding distal ends of one or more axles of an autonomous vehicle (AV). The method further includes determining, based on the sensor data, mass distribution data of the AV. The mass distribution data is associated with a first load proximate a first distal end of a first axle of the AV and a second load proximate a second distal end of the first axle of the AV. The method further includes causing, based on the mass distribution data, performance of a corrective action associated with the AV.
In another embodiment, disclosed is a system including a memory device and a processing device coupled to the memory device. The processing device is to identify sensor data associated with corresponding distal ends of one or more axles of an autonomous vehicle (AV). The processing device is further to determine, based on the sensor data, mass distribution data of the AV. The mass distribution data is associated with a first load proximate a first distal end of a first axle of the AV and a second load proximate a second distal end of the first axle of the AV. The processing device is further to cause, based on the mass distribution data, performance of a corrective action associated with the AV.
In another embodiment, disclosed is a non-transitory computer-readable storage medium having instructions stored thereon that, when executed by a processing device, cause the processing device to identify sensor data associated with corresponding distal ends of one or more axles of an autonomous vehicle (AV). The processing device is further to determine, based on the sensor data, mass distribution data of the AV. The mass distribution data is associated with a first load proximate a first distal end of a first axle of the AV and a second load proximate a second distal end of the first axle of the AV. The processing device is further to cause, based on the mass distribution data, performance of a corrective action associated with the AV/
A vehicle (e.g., truck) includes wheels and axles that are used to cause the vehicle to travel over a route from a starting location to a destination. The vehicle contacts the roadway via the wheels. One or more wheels are coupled to each distal end of each axle. The axle transmits driving torque from the vehicle to the corresponding wheels and/or maintains the position of the wheels relative to each other and to the vehicle body. Axle load of a wheeled vehicle is the total weight bearing on the roadway for all wheels connected to a given axle. Vehicles can have different mass distributions based on the construction of a vehicle (e.g., tractor, one or more trailers) and the cargo (e.g., cargo weight, cargo distribution, etc.) being carried by the vehicle. Mass distribution is associated with different loads on different distal ends of axles. Mass distribution can include a center of gravity (COG) of the vehicle. Different mass distributions can cause vehicles to have different likelihoods of rolling over, being able to perform an evasive maneuver, etc. For example, a vehicle that has a greater load on the left sides of the axles than the right sides of the axles may have a greater likelihood of rolling over. In another example, a vehicle that has a higher COG (e.g., transporting hanging meat) may have a greater likelihood of rolling over than a vehicle that has a lower COG.
An autonomous vehicle (AV) performs vehicle actions, such as braking, steering, and drive torque application (e.g., throttling), to move the AV from the starting location to the destination location along a route. The AV receives route data (e.g., from a server) that includes particular roads to travel from the starting location to the destination location. The AV also receives sensor data from a perception system (e.g., vehicle sensors) that indicates locations of other objects. The AV uses the sensor data and the route data to control the AV. Conventional AVs travel the same regardless of the mass distribution of the AV. This can cause AVs to either travel overly conservatively (e.g., assuming the worst case scenario of mass distribution) or to travel dangerously (e.g., assuming a best case scenario of mass distribution). An AV travelling overly conservatively results in inefficient use of time, fuel inefficiency, and wear-and-tear on the vehicle. An AV travelling dangerously can cause the vehicle to roll over, be in a collision, etc.
Aspects of the disclosure address the above challenges along with others, by performing mass distribution-informed optimization for controlling of the AV.
In some embodiments, a processing device (e.g., located in a server or onboard the AV) identifies sensor data that is associated with corresponding distal ends of one or more axles of the AV. The sensor data may include weights at each distal end of the axles (e.g., responsive to driving over scales). The sensor data may include pressure of bladders at each distal end of the axles (e.g., responsive to the bladders levelling the trailer). The sensor data may include displacement data of each distal end of the axles (e.g., a laser pointing at the trailer or the ground). The sensor data may include displacement data of the suspension (e.g., springs) at each distal end of the axles. At least a portion of the sensor data may be received when the AV is stationary. At least a portion of the sensor data may be received when the AV is on a substantially horizontal surface (e.g., level surface). At least a portion of the sensor data may be received when the AV is on a non-horizontal surface (e.g., on a gradient, on a tilt-table). At least a portion of the sensor data may be received when the AV is travelling (e.g., accelerating, braking, turning, etc.).
The processing device determines, based on the sensor data, mass distribution data of the AV. The mass distribution data is associated with a first load proximate a first distal end of a first axle of the AV and a second load proximate a second distal end of the first axle of the AV. In some embodiments, the mass distribution data includes one or more of a vertical COG of the AV, a lateral (side-to-side) COG of the AV, a longitudinal (front-to-back) COG of the AV, mass values associated with different distal ends of one or more axles of the AV, ratio of loads on different distal ends of one or more axles, suspension stiffness data of the AV, moment of inertia data of the AV, and/or roll stiffness data of the AV. In some embodiments, the mass distribution data is of a tractor (e.g., vehicle) (e.g., COG of the tractor). In some embodiments, the mass distribution data is of a single trailer (e.g., COG of a single trailer). In some embodiments, the mass distribution data is of multiple trailers (e.g., COG of a combination of trailers). In some embodiments, the mass distribution data is of a combination of a tractor and one or more trailers (e.g., COG of a combination of the tractor and one or more trailers).
The processing device causes, based on the mass distribution data, performance of a corrective action associated with the AV. A corrective action may be a main action (e.g., no first action to be corrected) or a corrective action may be a subsequent action (e.g., one or more first actions to be corrected). A corrective action may be referred to as an action, a driving action, a planning action, a routing action, a motion control action, and/or the like. Performance of the corrective action may be associated with one or more of selecting or updating a route based on the mass distribution data, determining handling maneuver limits (e.g., limits on acceleration, limits on braking, limits on turning, jerk limits, braking jerk limits, lateral jerk limits, etc.) based on the mass distribution data, determining a change in load of the AV (e.g., loss of cargo, shifting of cargo) based on the mass distribution data, identifying a malfunctioning component of the AV based on the mass distribution data, diagnosing issues with the AV based on the mass distribution data, rejecting a load based on the mass distribution data, providing an alert based on the mass distribution data, and/or the like. In some embodiments, performance of the corrective action includes generating mass distribution-informed strategy data (e.g., handling maneuver limits, acceleration limits, braking limits, turning limits, etc.) and causing the AV to travel a route based on the mass distribution-informed strategy data.
Aspects and embodiments disclosed herein provide numerous advantages over existing technologies. By determining mass distribution data of the AV, dangerous maneuvers can be avoided which avoids vehicle roll-overs, collisions, wear-and-tear on the vehicle, and/or the like. By determining mass distribution data of the AV, overly conservative travelling can be avoided which increases fuel-efficiency, uses less time, avoids wear-and-tear on the vehicle, and/or the like. By determining corrective actions based on the mass distribution data, a load of an AV can be rejected or adjusted and/or a route can be updated to improve fuel and time efficiency. By determining corrective actions based on the mass distribution data, changes in mass distribution (e.g., falling objects, shift of objects, etc.) can be determined.
AV 101 can include a sensing system 120. The sensing system 120 can include various electromagnetic (e.g., optical) and non-electromagnetic (e.g., acoustic) sensing subsystems and/or devices that can be used in object sensing to facilitate autonomous driving, e.g., distance sensing, velocity sensing, acceleration sensing, rotational motion sensing, and so on. For example, optical sensing can utilize a range of light visible to a human eye (e.g., the 380 to 400 nanometer (nm) wavelength range), the UV range (below 380 nm), the infrared range (above 400 nm), the radio frequency range (above 1 m), etc. In embodiments, “optical” can include any other suitable range of the electromagnetic spectrum.
The sensing system 120 can include one or more LiDAR sensors 122 (e.g., a LiDAR rangefinders), which can be laser-based units capable of determining distances (e.g., using time-of-flight (ToF) technology) to the objects in the environment around AV 101. For example, LiDAR sensor(s) 122 can emit one or more laser signals (pulses) that travel to an object and then detect arrived signals reflected from the object. By determining a time delay between the signal emission and the arrival of the retro-reflected waves, a ToF LiDAR sensors 122 can determine the distance to the object. LiDAR sensor(s) 122 can emit signals in various directions to obtain a wide view of the outside environment. LiDAR sensor(s) 122 can utilize wavelengths of electromagnetic waves that are shorter than the wavelength of the radio waves and can, therefore, provide a higher spatial resolution and sensitivity compared with the radar unit 124. In some embodiments, LiDAR sensor(s) 122 can be (or include) coherent LiDAR sensor(s), such as a frequency-modulated continuous-wave (FMCW) LiDAR sensor(s). FMCW LiDAR sensor(s) (or some other coherent LiDAR sensors) can use optical heterodyne detection for instant velocity determination. LiDAR sensor(s) 122 can include one or more laser sources producing and emitting signals and one or more detectors of the signals reflected back from the objects, one or more spectral filters to filter out spurious electromagnetic waves having wavelengths (frequencies) that are different from the wavelengths (frequencies) of the emitted signals, one or more directional filters (e.g., apertures, diffraction gratings, and so on) to filter out electromagnetic waves that arrive at the detectors along directions different from the directions of the emitted signals, and other components that can enhance sensing capabilities of the LiDAR sensor(s) 122. In some embodiments, LiDAR sensor(s) 122 can ensure a 360-degree view in a horizontal direction and up to 90 degrees in the vertical direction.
The sensing system 120 can include one or more radar units 124, which can be any system that utilizes radio or microwave frequency signals to sense objects within the driving environment of the AV 101. The radar unit(s) 124 can be configured to sense both the spatial locations of the objects (including their spatial dimensions) and their velocities (e.g., using the Doppler shift technology), such as translational velocities and angular (rotational) velocities. Sensing system 120 can also include one or more sonars 126, which can be ultrasonic sonars, in some embodiments.
Sensing system 120 can further include one or more cameras 128 to capture images of the driving environment. The images can be two-dimensional projections of the driving environment (or parts of the driving environment) onto a projecting plane (flat or non-flat, e.g. fisheye) of the cameras. Some of cameras 128 of sensing system 120 can be video cameras configured to capture a continuous (or quasi-continuous) stream of images of the driving environment.
The sensing data obtained by sensing system 120 can be processed by a perception system 130 that can be configured to detect and track objects in the driving environment and to identify the detected objects. For example, perception system 130 can analyze images captured by cameras 128 and can be capable of detecting traffic light signals, road signs, roadway layouts (e.g., boundaries of traffic lanes, topologies of intersections, designations of parking places, and so on), presence of obstacles, and the like. Perception system 130 can further receive the LiDAR sensing data (coherent Doppler data and incoherent ToF data) to determine distances to various objects in the environment and velocities of such objects. In some embodiments, perception system 130 can use the LiDAR data in combination with the data captured by the camera(s) 128. In one example, the camera(s) 128 can detect an image of a rock partially obstructing a traffic lane. Using the data from the camera(s) 128, the perception system 130 can be capable of determining the angular size of the rock, but not the linear size of the rock. Using the LiDAR data, perception system 130 can determine the distance from the rock to the AV and, therefore, by combining the distance information with the angular size of the rock, perception system 130 can determine the linear dimensions of the rock as well.
In another embodiment, using the LiDAR data, perception system 130 can determine how far a detected object is from the AV and can further determine the component of the object's velocity along the direction of the AV's motion. Furthermore, using a series of quick images obtained by the camera, perception system 130 can also determine the lateral velocity of the detected object in a direction perpendicular to the direction of the AV's motion. In some embodiments, the lateral velocity can be determined from the LiDAR data alone, for example, by recognizing an edge of the object (using horizontal scanning) and further determining how quickly the edge of the object is moving in the lateral direction.
Perception system 130 can further receive information from a GPS transceiver (not shown) configured to obtain information about the position of the AV relative to Earth and use the GPS data in conjunction with the sensing data to help accurately determine location of the AV with respect to fixed objects of the driving environment, such as roadways, lane boundaries, intersections, sidewalks, crosswalks, road signs, surrounding buildings, and so on, locations of which can be provided by map information accessible by perception system 130. In some embodiments, perception system 130 can receive non-electromagnetic data, such as sonar data (e.g., ultrasonic sensor data), temperature sensor data, pressure sensor data, meteorological data (e.g., wind speed and direction, precipitation data), or other environmental monitoring data.
In some embodiments, the perception system 130 can provide, generate, or be used to help generate sensor data 194 (e.g., environmental sensing data, scenario sensing data, GPS data, etc.) pertaining to a route of a vehicle. Herein “route” refers to a sequence of physical locations (e.g., geographic markers) that can be traveled by a target vehicle between a starting point (“start”) and a destination point (“destination”). The start and/or the destination need not be the initial and final locations of the vehicle in the driving mission, but can be any two points (e.g., A and B) along such a mission. Accordingly, “mission” herein refers to any portion of the overall driving task.
Route data 182 can include information about the starting point, intermediate points and destination point of the route (e.g., longitude and latitude information of points along the route) and include physical characteristics of various routes. “Trajectory” refers to driving settings, specified for various locations along the route, and includes speed, throttle, brake, etc. control that determine progression of the vehicle along the route. For example, a trajectory can include throttle settings, T(L) as a function of the location L along the route, target speed of the vehicle S(L), gear selection sequences, and so on. The location L can be identified by the distance travelled, GPS coordinates, road markers (e.g., mileposts), or a combination thereof, or in any other way.
Topographic data 184 can include information about the topography of the roads (e.g., grade and radius of curvature, pitch, elevation, etc.) or topography along the route.
Map data 186 can include information about the road network along the route, such as the quality of road surfaces, number of lanes, connection between lanes (e.g., topology of lanes, interconnections of lanes, which lanes are next to each other, merging lanes, exit lanes, entrance lanes, etc.), regulatory speed limits (e.g., regulatory maximum speed limits, regulatory minimum speed limits), type and number of exit ramps, availability of gas stations, and so on. Map data 186 can also include traffic data that includes information about historic traffic patterns or current traffic conditions along or near the route.
Vehicle data 188 can include data about the AV 101. Vehicle data 188 can be physical vehicle data, such as total mass of the AV 101, braking capabilities of the AV (e.g., regenerative braking, friction braking, engine braking, downshifting, exhaust braking, using drive line retarders, etc.), transmission gear ratios of the AV, wheelbase data of the AV, engine capabilities of the AV, lateral dynamics data (e.g., how the AV reacts to winding roads), dimensions of the AV 101 (e.g., tractor, one or more trailers), etc.
Historical data 192 can include data, such as recommended lane data (e.g., to merge, historically it is better to be in a certain lane), historical wind data (e.g., particular road segments historically have a particular speed and direction of wind), traffic data (e.g., historically a certain amount of traffic at particular road segments at particular times or days, historically vehicles are at a particular speed on particular road segments at particular times or days, etc.). In some embodiments, the historical data 192 is collected from AVs 101 over time (e.g., via sensing system 120, via perception system 130, sent to AV server 150, etc.). The historical data 192 can be used as predictive data about future scenarios. For example, sensor data 194 can indicate that another vehicle is in an adjacent lane and has an engaged turn signal, the historical data 192 can include information indicating that historically, the vehicle will enter the same lane that AV 101 currently occupies in 3 seconds and will be approximately 3 meters in front of the AV 101 at that time. In some embodiments, forecast data (e.g., predicted data, estimated data, etc.) can be based on historical data. Historical data 192 can refer to collected historical data, estimated historical data, extrapolated data, forecast data, estimated data, predicted data, or the like. As used herein, instead of, in addition to, or included with historical data 192, forecast data (e.g., forecast traffic, forecast wind, forecast recommended lane, etc.), and the like can be used to generate mass distribution data 196 and/or short time horizon route data.
Sensor data 194 (e.g., environmental sensing data) can include data obtained by sensing system 120 and/or include data from the perception system 130 that has been generated using the data from the sensing system 120. For example, sensor data 194 (e.g., environmental sensing data) can include information describing the environment of or proximate the AV 101 (e.g., position of other vehicles, obstacles, or other elements with respect to the AV 101).
In some embodiments, architecture 100 includes mass distribution sensors 129. The mass distribution sensors 129 can be part of the AV 101 (e.g., part of the sensing system 120 or separate from the sensing system 120) or remote from the AV 101. In some embodiments, the mass distribution sensors 129 includes one or more of scales external to the AV 101, pressure sensors coupled to the AV, displacement sensors coupled to the AV, and/or the like. The sensor data 194 may include data obtained from the mass distribution sensors 129 responsive to the AV 101 being stationary, on a substantially horizontal surface, moving, and/or on a non-horizontal surface.
Mass distribution data 196 may be generated by strategy module 142 based on sensor data 194. The mass distribution data 196 may be associated with a first load proximate a first distal end of an axle and a second load proximate a second distal end of the axle (e.g., for one or more axles of AV 101). The mass distribution data 196 may include one or more of mass values associated with different distal ends of one or more axles, weight values associated with different distal ends of one or more axles, pressure values associated with different distal ends of one or more axles (e.g., responsive to the AV 101 being leveled), displacement values associated with different distal ends of one or more axles (e.g., from lasers pointed at the trailer or the ground), a ratio of a first load proximate a first distal end of an axle to a second load proximate a second distal end of the axle, vertical COG, lateral COG, longitudinal COG, roll stiffness, moment of inertia, suspension stiffness data of the AV 101, and/or the like.
The data generated by perception system 130 as well as various additional data (e.g., GPS data, route data 182, topographic data 184, map data 186, vehicle data 188, historical data 192, sensor data 194, mass distribution data 196, and the like) can be used by an autonomous driving system, such as AV 101 control system (AVCS 140). The AVCS 140 can include one or more algorithms that control how AV 101 is to behave in various driving situations and environments. For example, the AVCS 140 can include a navigation system for determining a global driving route to a destination point. The AVCS 140 can also include a driving path selection system for selecting a particular path through the immediate driving environment, which can include selecting a traffic lane, negotiating a traffic congestion, choosing a place to make a U-turn, selecting a trajectory for a parking maneuver, and so on. The AVCS 140 can also include an obstacle avoidance system for safe avoidance of various obstructions (rocks, stalled vehicles, a jaywalking pedestrian, and so on) within the driving environment of the AV. The obstacle avoidance system can be configured to evaluate the size of the obstacles and the trajectories of the obstacles (if obstacles are animated) and select an optimal driving strategy (e.g., braking, steering, accelerating, etc.) for avoiding the obstacles.
Algorithms and modules of AVCS 140 can generate instructions for various systems and components of the vehicle, such as vehicle systems 160 (e.g., the powertrain, steering and braking 162, vehicle electronics 164, and signaling 166), and other systems and components not explicitly shown in
In one example, the AVCS 140 can determine that an obstacle identified by perception system 130 is to be avoided by decelerating the vehicle until a safe speed is reached, followed by steering the vehicle around the obstacle. The AVCS 140 can output instructions to the powertrain, steering and braking 162 (directly or via the electronics 164) to 1) reduce, by modifying the throttle settings, a flow of fuel to the engine to decrease the engine rpm, 2) downshift, via an automatic transmission, the drivetrain into a lower gear, 3) engage a brake unit to reduce (while acting in concert with the engine and the transmission) the vehicle's speed until a safe speed is reached, and 4) perform, using a power steering mechanism, a steering maneuver until the obstacle is safely bypassed. Subsequently, the AVCS 140 can output instructions to the powertrain, steering and braking 162 (directly or via the electronics 164) to resume the previous speed settings of the vehicle.
In some embodiments, architecture 100 can also include AV server 150 to communicate relevant information to and receive relevant information from AV 101. For example, relevant information can include traffic information, weather information, route information, among other information. In some embodiments, AV server 150 can be, at least at times, communicating with AV 101 via network 170. In some embodiments, AV 101 can be connected to network 170 at most or all times. In some embodiments, AV 101 can establish connections to network 170 intermittently, when an appropriate network signal is available. In some embodiments, AV 101 can be connected to network 170 prior to starting the driving mission. Network 170 can use a wireless connection, such as a broadband cellular connection (e.g., 3G, 4G, 4G LTE, 5G, connection(s), and so on), a wireless local area network (WLAN), a wireless wide area network (WWAN), a wired connection, a satellite connection, or the like. Connection to network 170 can be facilitated via a network interface 106 (on the side of AV 101) and a network interface 152 (on the side of AV server 150). Network interfaces 106 and 152 can include antennas, network controllers, radio circuits, amplifiers, analog-to-digital and digital-to-analog converters, physical layers (PHY), media access control layers (MAC), and the like.
In some embodiments, architecture 100 can also include a data repository 180. In some embodiments, the data repository 180 is memory (e.g., random access memory), a drive (e.g., a hard drive, a flash drive), a database system, or another type of component or device capable of storing data. In some embodiments, data repository 180 includes multiple storage components (e.g., multiple drives or multiple databases) that span multiple computing devices (e.g., multiple server computers). In some embodiments, the data repository 180 stores one or more of route data 182, topographic data 184, map data 186, vehicle data 188, historical data 192, sensor data 194, mass distribution data 196, and the like. In some embodiments, at least a portion of the data shown in
In some embodiments, architecture 100 includes a strategy module 142. In some embodiments, the strategy module 142 is hosted by the AV server 150. In some embodiments, the strategy module 142 is hosted by the AV 101 (e.g., in AVCS 140). In some embodiments, the AVCS 140 includes one or more of strategy module 142, routing module 144, and/or motion control module 146. The strategy module 142 may receive sensor data 194 from mass distribution sensors 129 and may generate mass distribution data 196 based on the sensor data 194. In some embodiments, the strategy module 142 generates mass distribution-informed strategy data 198 based on one or more of route data 182, topographic data 184, map data 186, vehicle data 188, historical data 192, sensor data 194, and/or mass distribution data 196.
In some embodiments, the strategy module 142 determines, based on the mass distribution data 196, one or more corrective actions associated with AV 101 that are to be performed.
The strategy module 142 may determine that one or more corrective actions are to be performed by determining a change in load (e.g., mass distribution, change in COG, change in load on distal ends of axles, change in ratio of loads on distal ends of axles, etc.) of the AV 101, and/or the like. The change in load may be responsive to a portion of the cargo being removed from the AV 101 or cargo shifting location in the AV 101. The corrective action may include causing the cargo to be verified, causing the cargo to be repositioned, preventing traveling of the AV 101, causing the AV 101 to travel to a location for verification of the cargo, providing an alert, and/or the like.
The strategy module 142 may determine that one or more corrective actions are to be performed by identifying a malfunctioning component of the AV 101. The identifying of the malfunctioning component may include determining a change in sensor data (e.g., displacement data, spring thickness data, etc.) when there was not a change in cargo (e.g., suspension is malfunctioning).
The strategy module 142 may determine that one or more corrective actions are to be performed by diagnosing chassis properties (e.g., chassis issues) of the AV 101. The diagnosing of the chassis properties may include determining that problems with one or more of the suspension, tires, and/or the like is causing a change in displacement of the AV 101.
The strategy module 142 may determine that one or more corrective actions are to be performed by determining a load of the AV 101 does not meet a threshold mass displacement value. For example, responsive to determining the vertical COG value is greater than a threshold height value, the load is to be rejected. In another example, responsive to determining the difference in or ratio of load values at distal ends of one or more axles exceeds a threshold amount, that the load is to be rejected.
In some embodiments, the strategy module 142 causes the corrective actions to be performed. The strategy module 142 may cause the corrective action to be performed by providing an alert, preventing the AV 101 from travelling, generating handling maneuver limits for the AV 101 (e.g., speed limits, acceleration limits, braking limits, turning limits, etc.), rejecting a load (e.g., the load of the AV 101 is to be adjusted or repositioned in the AV 101 to improve the mass distribution prior to being transported), causing the load of the AV 101 to be verified (e.g., to confirm whether a portion of the cargo has been removed or shifted position), providing instructions to the routing module 144 and/or the motion control module for controlling the AV 101, and/or the like.
In some embodiments, the routing module 144 receives data, such as route data 182, map data 186, and sensor data 194, mass distribution data 196, etc., and generates, based on the data, short time horizon plan data. For example, routing module 144 receives route data 182 indicating that the AV 101 is to travel along a particular road, map data 186 indicating regulatory speed limits of the particular road, and sensor data 194 indicating locations of vehicles and/or objects proximate the AV 101. The routing module 144 generates, based on the route data 182, map data 186, and sensor data 194, short time horizon routing data including instructions (e.g., commands) of vehicle actions of the AV 101 for the next interval (e.g., 10 seconds). The routing module 144 transmits the short time horizon routing data to the motion control module 146 and the motion control module 146 controls one or more of the actuators (e.g., the vehicle systems 160) of the AV 101 based on the short time horizon routing data for the next interval (e.g., 10 seconds). The routing module 144 continues generating (e.g., regenerating, refreshing) short time horizon routing data (e.g., every 100 ms) (e.g., based on current route data 182, map data 186, and sensor data 194), transmitting the short time horizon routing data to the motion control module 146, and the motion control module 146 controls the actuators based on the short time horizon plan data.
In some embodiments, the strategy module 142 can interface with routing module 144 and motion control module 146. The operations of strategy module 142 are further described below in conjunction with the following Figures. The strategy module 142 identifies (e.g., retrieves from data repository 180 or receives from appropriate AV components or AV server) data, such as route data 182, topographic data 184, map data 186, vehicle data 188, historical data 192, sensor data 194, mass distribution data 196, etc. In some embodiments, the strategy module 142 generates, based on the identified data, mass distribution-informed strategy data 198 (e.g., based on mass distribution data 196) for segments of a route to be traveled by AV 101. In some embodiments, the strategy module 142 applies one or more rules to the identified data (e.g., to specific parameters or characteristics in the identified data).
In some embodiments, a rule specifies that a type of braking is to be used for a segment of a route responsive to the identified data meeting a threshold grade value, a threshold distance value, a threshold mass, a threshold mass distribution value, and/or a type of braking capability. In some examples, a rule specifies that friction braking is to be used responsive to the identified data including 2% or greater downhill grade value for the segment, a 0.1 mile or less distance value for the segment, a threshold mass of the AV, a threshold mass distribution value of the AV, and/or the AV having friction brakes. In some examples, a rule specifies that engine braking is to be used responsive to the identified data having 2% or greater downhill grade value, at least a 0.5 mile distance value, a threshold mass of the AV, a threshold mass distribution value of the AV, and/or the AV having engine braking capability.
In some embodiments, a rule specifies that a specific speed value (e.g., calculated speed, calculated maximum speed) is to be used for a segment of a route responsive to the identified data meeting a threshold grade value, a threshold distance value, a threshold mass, a threshold mass distribution value, and/or a powertrain capability (e.g., engine capability). In some examples, a rule specifies that a 30 mph speed value is to be used responsive to the identified data including 3% uphill grade value, at least a 0.5 mile distance value, a threshold mass of the AV, a threshold mass distribution value of the AV, and/or the AV having particular engine capability.
In some embodiments, a rule specifies a rate of deceleration value and/or speed value to be used for a segment of a route responsive to the identified data meeting a threshold grade value of the segment, a threshold radius of curvature value of the segment, and a total mass of the AV, and/or a threshold mass distribution value of the AV.
In some embodiments, a rule specifies a particular lane in which to travel responsive to the identified data indicating an upcoming merge or exit (e.g., route data 182) that is beyond the 10 second range for the instructions 220 (e.g., short time horizon route data), historical data 192 indicating in which lane vehicles typically travel, sensor data 194 indicating amount of vehicles that are proximate the AV 101, a threshold mass distribution value (e.g., likelihood of being able to swerve without rolling or brake if a vehicle merged onto the roadway in front of the AV 101), and/or the like.
The mass distribution-informed strategy data 198 (e.g., driving constraint data, mass distribution-informed data, handling maneuvers limits) includes one or more of a corresponding type of braking for a corresponding segment of a route, a corresponding calculated maximum speed (e.g., less than a regulatory maximum speed) for a corresponding segment of the route based on physical limitations of the AV 101, a corresponding gear to be used for a corresponding segment of the route, a corresponding rate of change of speed for a corresponding segment of the route, a corresponding lane for a corresponding segment of the route, and/or the like.
In some embodiments, the mass distribution-informed strategy data 198 includes an overall plan for a route. The mass distribution-informed strategy data 198 can be used to generate a route from a starting point to a destination, determine a time of day to depart, determine an estimated arrival time, determine estimated handling maneuvers (e.g., speed, acceleration, braking, turning, lanes to use, etc.) for the route between the starting point and the destination, handling maneuvers limits (e.g., calculated speed limits, acceleration limits, braking limits, turning limits, etc.), and/or the like.
In some embodiments, the mass distribution-informed strategy data 198 includes instructions (e.g., in the form of a script, commands, etc.), textual recommendations in a particular format, or any other type/format of data. The strategy module 142 may provide the mass distribution-informed strategy data 198 to the routing module 144 and/or the motion control module 146. The routing module 144 may generate the instructions (e.g., short time horizon routing data) based on the mass distribution-informed strategy data 198 (e.g., using a calculated maximum speed instead of a regulatory maximum speed, using a deceleration prior to a radius of curvature on a downhill grade, etc.).
In some embodiments, the routing module 144 receives route data 182 indicating the roads the AV 101 is to travel, map data 186 indicating details of the roads (e.g., regulatory speed limits, lanes, radius of curvature, etc.), sensor data 194 (e.g., indicating objects that are proximate the AV 101), the mass distribution data 196, and/or the mass distribution-informed strategy data (e.g., what braking system to use, what speed to maintain, what gear to use, rate of change of speed, etc.). The routing module 144 can generate short time horizon routing data that includes instructions (e.g., script, commands, etc.) of how the AV 101 is to move for the next 10 seconds (e.g., continue in a straight line, steer to the left or right, accelerate, decelerate, maintain speed, etc.). The short time horizon routing data includes instructions based on the mass distribution data 196 (e.g., braking system, speed, gear, change of speed, etc.).
The motion control module 146 controls the actuators based on the short time horizon routing data and based on the mass distribution-informed strategy data 198 (e.g., using a type of braking system). In some embodiments, the short time horizon routing data includes instructions (e.g., based on an updated speed limit calculated based on the mass distribution data 196) and the motion control module 146 executes the instructions to control the vehicle systems 160. In some embodiments, the mass distribution data 196 includes an indication of how to use the vehicle systems 160 (e.g., use a specific type of braking, use a particular gear, etc.) and the motion control module 146 generates instructions (e.g., script, commands) or adjusts instructions (e.g., script, commands) received from the routing module 144 to control the vehicle systems 160.
The use of the mass distribution data 196 and/or mass distribution-informed strategy data 198 provides mass distribution-informed optimization, such as decreasing wear-and-tear on the vehicle systems 160 of the AV 101, decreasing accumulated error, decreasing probability of collisions, providing energy savings (e.g., an energy savings action), and/or the like. An energy saving action can refer to a vehicle action that results in reduction of energy consumed by an AV 101. With respect to an AV 101 with an internal combustion engine (ICE), an energy saving action can include a fuel saving action. With respect to an AV 101 with an electric engine (e.g., electric motor) or hybrid AV, an energy saving action can include a power or electricity saving action. In some embodiments, an energy saving action can include at least one of a disengagement of a powertrain of the AV 101, a withholding of a supply of energy to an engine of the AV 101, or a regenerative energy action. Disengagement of a powertrain can include placing the AV 101 in neutral gear (e.g. coasting) or decoupling the power of the engine from the wheels. Withholding a supply of energy to an engine of the AV 101 can include reducing or stopping fuel injection to the ICE or reducing or stopping the electricity provided to the electric engine (e.g., motor). A regenerative energy action can include an action that returns to or generates energy for the AV 101. A regenerative braking technique that returns energy to the AV 101 through braking or other regenerative technique can be implemented.
In some embodiments, the strategy module 142 generates mass distribution data 196 (e.g., COG values, mass values at distal ends of axles, ratios of mass at distal ends of axles) and provides the mass distribution data 196 to the routing module 144 and/or motion control module 146. In some embodiments, the strategy module 142 generates mass distribution-informed strategy data 198 (e.g., handling maneuver limits, speed limits, type of braking, acceleration limits, braking limits, turning limits, which lane to use, etc.) based on mass distribution data 196 and/or sensor data and provides the mass distribution-informed strategy data 198 to the routing module 144 and/or motion control module 146. In some embodiments, the strategy module 142 selects or updates a route, handling maneuver limits for the route, generates an overall plan for the route, etc. based on the mass distribution data 196.
In some embodiments, the strategy module 142 provides mass distribution-informed optimization for the AV. In some embodiments, an AV server 150 includes the strategy module 142. In some embodiments, the AVCS 140 of the AV includes the strategy module 142.
The strategy module 142 receives contextual data 210, such as one or more of route data 182, topographic data 184, map data 186, vehicle data 188, mass distribution data 196, historical data 192, sensor data 194, and/or the like. In some embodiments, strategy module 142 receives sensor data 194 from the vehicle systems 160 (e.g., data is exchanged between the strategy module 142 and the vehicle systems 160) and/or mass distribution sensors 129. In some embodiments, the strategy module 142 generates mass distribution data 196 based on the sensor data 194. The strategy module 142 generates mass distribution-informed strategy data 198 based on the contextual data 210. In some embodiments, the mass distribution-informed strategy data 198 is a text file, a script, an executable binary file, and/or the like. In some embodiments, the strategy module 142 embeds the mass distribution-informed strategy data 198 in other data, such as the map data 186. The strategy module 142 provides the mass distribution-informed strategy data 198 (e.g., alone, embedded in other data, etc.) to the routing module 144 and/or the motion control module 146.
In some embodiments, routing module 144 is the primary authority and/or component involved in planning and decision making on positioning and operation of the AV. The routing module 144 receives data, such as the mass distribution-informed strategy data 198, route data 182, map data 186, and sensor data 194, and makes decision about the positioning of the AV with respect to the external environment based on the data received.
The routing module 144 generates instructions 220 (e.g., short time horizon routing data associated with moving the AV over the next 10 seconds) based on at least a portion of the mass distribution data 196 and transmits the instructions 220 to the motion control module 146. In some embodiments, the instructions 220 are in a file (e.g., a text file, etc.) and the motion control module 146 generates commands (e.g., script, instructions) to control the vehicle systems 160 based on the instructions 220. In some embodiments, the instructions 220 include commands (e.g., a script, instructions, etc.) and the motion control module 146 passes the commands (e.g., as received or after updating the commands) to the vehicle systems 160 to control the vehicles systems 160. The motion control module 146 executes the instructions 220 (e.g., commands, such as a calculated maximum speed limit) based on the mass distribution-informed strategy data 198 (e.g., constraints, such as type of braking to use). In some embodiments, the AVCS 140 controls the position of the AV based on a very strict tolerance (e.g., within a few centimeters from the requested position). For example, the AVCS 140 can evaluate received data (e.g., sensor data 194 indicating location of objects proximate the AV) and determine a position of the AV with respect to the external environment to move the AV. In some examples, the routing module 144 receives the sensor data indicating that another vehicle is two seconds ahead of the AV. The routing module 144 then generates instructions 220 (e.g., short time horizon routing data 220) indicating that the braking system is to be actuated to cause the AV to be at least three seconds behind the other vehicle. In some embodiments, the motion control module 146 is expected to use the instructions 220 (e.g. in view of the mass distribution-informed strategy data 198) within the constraints imposed by the instructions 220 (e.g. in view of the mass distribution-informed strategy data 198) such that the position of the AV as determined by the AVCS 140 can be controlled with precision.
In some examples, mass distribution-informed strategy data 198 can indicate, for a segment of a route, a calculated maximum speed (e.g., that is less than a regulatory maximum speed), a type of braking, a gear ratio to be used, a rate of deceleration, and/or a lane in which to travel. The strategy module 142 can send at least a first portion of the mass distribution data 196 (e.g., the calculated maximum speed, rate of deceleration, lane in which to travel, etc.) to the routing module 144 and at least a second portion of the mass distribution data 196 (e.g., type of braking, gear ratio, etc.) to the motion control module 146. The routing module 144 can generate instructions (e.g., short time horizon routing data 220) for the next interval of time (e.g., 10 seconds) based on the at least a first portion of the mass distribution data 196 (e.g., calculated maximum speed, rate of deceleration, lane in which to travel, etc.). The motion control module 146 can control the vehicle systems 160 based on the at least a second portion of the mass distribution data 196 (e.g., type of braking and/or gear ratio of the mass distribution data 196 and based on the instructions 220).
Referring to
In some examples, the sensors are used to weigh the AV at individual wheels of the AV before the AV departs. In some examples, the sensors are air suspension bag pressure sensors (e.g., pressure sensors at bladders used to level the AV) that are used to determine the load of each axle (e.g., each distal end of each axle). Air pressure may be measured on each side of the trailer suspension to determine side-to-side (e.g., lateral) load. In some examples, sensor data from sensors that measure suspension deflection on the AV (e.g., tractor and/or trailer) is combined with suspension stiffness data (e.g., of suspension springs or air pressure bladders). In some examples, suspension deflection can be measured using laser sensors aimed at the AV (e.g., tractor, trailer) or surface under the AV (e.g., ground, roadway, etc.). In some examples sensors provide sensor data associated with the load on each axle (e.g., each distal end of each axle) in response to certain braking and/or acceleration maneuvers. The AV can proactively perform such pre-defined maneuvers (e.g., braking, accelerating, longitudinal motion, lateral motion, cornering, etc.) to determine mass distribution data (e.g., COG) by detecting how the load is transferred back and forth between axles and side-to-side between the wheels. The maneuvers may be performed early on in a driving mission (e.g., travelling a route).
At operation 304, the processing logic determines, based on the sensor data, mass distribution data of the AV. In some embodiments, the mass distribution data is one or more values or ratios associated with the distribution of the mass of the load of the AV (e.g., tractor and/or one or more trailers) over various axles and wheels of the AV. The mass distribution data can be used to choose an appropriate driving mode and level of risk (e.g., limiting trajectory of the AV).
The mass distribution data is associated with a first load proximate a first distal end of an axle of the AV and a second load proximate a second distal end of the axle of the AV. The mass distribution data may include one or more of vertical COG, lateral COG, longitudinal COG, mass values associated with different distal ends of axles, a ratio of a first load proximate a first distal end of an axle and a second load proximate a second distal end of the axle, suspension stiffness data of the AV, moment of inertia data of the AV, roll stiffness of the AV, and/or the like.
At operation 306, the processing logic determines, based on the mass distribution data a corrective action to be performed in association with the AV. The determining that a corrective action is to be performed may include one or more of determining a change in load (e.g., mass distribution data) of the AV, identifying a malfunctioning component of the AV, diagnosing a chassis issue (e.g., chassis property) of the AV), determining mass distribution data of an AV does not meet a threshold mass distribution, determining the AV is to travel an updated route, determining the AV is to travel with updated handling maneuver limits, and/or the like.
At operation 308, the processing logic causes performance of the corrective action. The corrective action can include one or more providing an alert, preventing travel of the AV, causing verification of load (e.g., location or positioning of cargo) of the AV, travel of the AV to a location to be inspected, causing the AV to travel based on mass distribution-informed strategy data (e.g., acceleration limits, braking limits, turning limits, which lanes to use, handling maneuver limits, etc.), selecting or updating a route for the AV to travel, and/or the like.
In some embodiments, processing logic generates, based on the mass distribution data, mass distribution-informed strategy data for segments of a route to be travelled by an AV. In some embodiments, the mass distribution-informed strategy data includes context and/or constraints to improve actuator usage for one or more segments of the route.
Route data, topographic data, map data (e.g., roadway data, maximum and minimum speed limits, etc.), vehicle data (e.g., current vehicle configuration, total mass, wheelbase, etc.), best practices (e.g., professional driver strategies, heuristics, etc.), historical data (e.g., traffic, weather, etc.), sensor data, mass distribution data, and/or the like can be provided to the processing logic. The processing logic can incorporate this data to create the mass distribution-informed strategy data for the segments of the route. The mass distribution-informed strategy data for the segments of the route can include improved road and trajectory constraints for the routing module (e.g., altered location based maximum road speed limits, adapted location based trajectory limits, etc.) and additional context or constraints for the motion control module to improve actuator usage (e.g., recommended gear selection or representation of grade severity such as distance plus steepness, location based actuator strategies such as transmission, etc.).
In some embodiments, the mass distribution-informed strategy data includes a corresponding type of braking for one or more segments of the route. In some examples, the mass distribution-informed strategy data recommends friction braking (e.g., using friction brake pads) for a short downhill grade). In some examples, the mass distribution-informed strategy data recommends downshifting (e.g., putting the AV in a lower gear) and/or engine braking instead of friction braking for a longer downhill grade. For a corresponding segment, the mass distribution-informed strategy data may recommend one or more of regenerative braking, friction braking, engine braking, downshifting, exhaust braking, or using drive line retarders.
In some embodiments, the mass distribution-informed strategy data includes a corresponding calculated maximum speed (e.g., lower than the regulatory maximum speed) for one or more segments of the route based on physical limitations of the AV. In some example, the calculated maximum speed is based on the total mass of the AV, the engine capabilities of the AV, etc.
In some embodiments, the mass distribution-informed strategy data includes a corresponding gear (e.g., gear ratio) to be used for one or more segments of the route. In some embodiments, the corresponding gear is based on one or more of the calculated maximum speed, downshifting, deceleration, etc.
In some embodiments, the mass distribution-informed strategy data includes a corresponding rate of change of speed (e.g., acceleration, deceleration) for one or more segments of the route. In some examples, mass distribution-informed strategy data includes a recommended deceleration for a downhill grade with a radius of curvature.
In some embodiments, the mass distribution-informed strategy data includes a corresponding lane for one or more segments of a route. In some examples, for a segment of the route where the AV is to merge onto another road, the mass distribution-informed strategy data recommends that the AV be in a corresponding lane.
AV 101 may include a tractor 402 and one or more trailers 404. The tractor 402 is used to pull the one or more trailers 404. The tractor 402 and trailer 404 each have axles 406. At each distal end of the axles 406 is one or more wheels. Although some embodiments of the present disclosure refer to an AV that includes a tractor and one or more trailers, the present disclosure applies to other types of vehicles (e.g., passenger vehicles, cars, trucks, sports utility vehicles, farm equipment, industrial equipment, vehicles with two axles, and/or the like.).
In some embodiments, the AV 101 travels onto scales 410 (e.g., mass distribution sensors 129). The scales 410 provide sensor data to the AV 101 and/or the AV server 150. The sensor data is associated with a load at each distal end of each axle. For example, a first scale 410 may be located under a first distal end of an axle 406 and a second scale 410 may be located under a second distal end of the same axle 408. The AV 101 may drive over the one or more scales 410 until each distal end of each axle 406 is measured. In some embodiments, the distal ends of a subset of the total number of axles 406 of the AV 101 are measured.
In some embodiments, the AV 101 includes sensors 420 configured to provide sensor data to determine mass distribution data. One or more sensors 420 are located at each distal end of one or more of the axles 406. In some embodiments, one or more sensors 420 are located at a connection (e.g., mount) between tractor 402 and the trailer 404 (e.g., the fifth-wheel connection, fifth-wheel mount, etc.). In some embodiments, sensors 420 are located at one or more of the axles of the tractor 402 and one or more of the axles of the trailer 404 (e.g., and not at the connection between the tractor 402 and the trailer 404). In some embodiments, sensors 420 are located at one or more of the axles of the tractor 402 and at the connection between the tractor 402 and the trailer 404 (e.g., and not at the axles of the trailer 404). In some embodiments, sensors 420 are located at one or more of the axles of the trailer 404 and at the connection between the tractor 402 and the trailer 404 (e.g., and not at the axles of the tractor 402).
The sensors 420 may include pressure sensors. For example, amount of fluid (e.g., air) in a bladder (e.g., air bag suspension) may be adjusted (e.g., via a valve, pump, etc.) to adjust the height and/or level the AV 101 (e.g., to level the tractor 402, to level the trailer 404, to level the tractor 402 and the trailer 404 relative to each other).
The sensors may include displacement sensors. In some examples, a displacement sensor is a laser sensor or imaging device (e.g., camera) that determine a distance to the tractor 402, to the trailer 404, and/or to a surface under the AV 101. In some examples, a displacement sensor is a thickness sensor that determines thickness of the suspension (e.g., springs) of the AV 101.
The sensors 420 may include motion sensors. In some examples, the motion sensors determine one or more of oscillation data of suspension springs, Eigen frequency data of the AV, frequency data of oscillation of the AV, frequency data of motion of the AV, etc.
In some embodiments, mass distribution sensors 129 (e.g., scales 410, sensors 420) provide sensor data of the AV 101 while the AV 101 is stationary. In some embodiments, mass distribution sensors 129 (e.g., scales 410, sensors 420) provide sensor data of the AV 101 while the AV 101 is moving (e.g., steady speed, accelerating, braking, turning, longitudinal acceleration, lateral acceleration, etc.). In some embodiments, sensor data from the AV 101 being stationary and sensor data from the AV 101 moving are compared to determine the mass distribution data. In some embodiments, sensor data from the AV 101 performing a first movement and sensor data from the AV 101 performing a second movement are compared to determine the mass distribution data.
Referring to
Referring to
In some embodiments, sensor data from the AV 101 being in a substantially horizontal surface is compared to sensor data from the AV 101 being on a substantially non-horizontal surface to determine the mass distribution data.
The mass distribution data may be used to cause performance of a corrective action associated with the AV 101.
Example computer device 500 can include a processing device 502 (also referred to as a processor or CPU), which can include processing logic 503, a main memory 504 (e.g., read-only memory (ROM), flash memory, dynamic random access memory (DRAM) such as synchronous DRAM (SDRAM), etc.), a static memory 506 (e.g., flash memory, static random access memory (SRAM), etc.), and a secondary memory (e.g., a data storage device 518), which can communicate with each other via a bus 530.
Processing device 502 represents one or more general-purpose processing devices such as a microprocessor, central processing unit, or the like. More particularly, processing device 502 can be a complex instruction set computing (CISC) microprocessor, reduced instruction set computing (RISC) microprocessor, very long instruction word (VLIW) microprocessor, processor implementing other instruction sets, or processors implementing a combination of instruction sets. Processing device 502 can also be one or more special-purpose processing devices such as an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), a digital signal processor (DSP), network processor, or the like. In accordance with one or more aspects of the disclosure, processing device 502 can be configured to execute instructions performing any of the operations performed by strategy module 142.
Example computer device 500 can further comprise a network interface device 508, which can be communicatively coupled to a network 520. Example computer device 500 can further comprise a video display 510 (e.g., a liquid crystal display (LCD), a touch screen, or a cathode ray tube (CRT)), an alphanumeric input device 512 (e.g., a keyboard), a cursor control device 514 (e.g., a mouse), and an acoustic signal generation device 516 (e.g., a speaker).
Data storage device 518 can include a computer-readable storage medium (or, more specifically, a non-transitory computer-readable storage medium) 528 on which is stored one or more sets of executable instructions 522. In accordance with one or more aspects of the disclosure, executable instructions 522 can comprise executable instructions to perform any of the operations of strategy module 142.
Executable instructions 522 can also reside, completely or at least partially, within main memory 504 and/or within processing device 502 during execution thereof by example computer device 500, main memory 504 and processing device 502 also constituting computer-readable storage media. Executable instructions 522 can further be transmitted or received over a network via network interface device 508.
While the computer-readable storage medium 528 is shown in
Some portions of the preceding detailed descriptions have been presented in terms of algorithms and symbolic representations of operations on data bits within a computer memory. These algorithmic descriptions and representations are the ways used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art. An algorithm is here, and generally, conceived to be a self-consistent sequence of operations leading to a desired result. The operations are those requiring physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, combined, compared, and otherwise manipulated. It has proven convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like.
It should be borne in mind, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. The disclosure can refer to the action and processes of a computer system, or similar electronic computing device, that manipulates and transforms data represented as physical (electronic) quantities within the computer system's registers and memories into other data similarly represented as physical quantities within the computer system memories or registers or other such information storage systems.
The disclosure also relates to an apparatus for performing the operations herein. This apparatus can be specially constructed for the intended purposes, or it can include a general purpose computer selectively activated or reconfigured by a computer program stored in the computer. Such a computer program can be stored in a computer readable storage medium, such as, but not limited to, any type of disk including floppy disks, optical disks, CD-ROMs, and magnetic-optical disks, read-only memories (ROMs), random access memories (RAMs), EPROMs, EEPROMs, magnetic or optical cards, or any type of media suitable for storing electronic instructions, each coupled to a computer system bus.
The algorithms and displays presented herein are not inherently related to any particular computer or other apparatus. Various general purpose systems can be used with programs in accordance with the teachings herein, or it can prove convenient to construct a more specialized apparatus to perform the method. The structure for a variety of these systems will appear as set forth in the description below. In addition, the disclosure is not described with reference to any particular programming language. It will be appreciated that a variety of programming languages can be used to implement the teachings of the disclosure as described herein.
The disclosure can be provided as a computer program product, or software, that can include a machine-readable medium having stored thereon instructions, which can be used to program a computer system (or other electronic devices) to perform a process according to the disclosure. A machine-readable medium includes any mechanism for storing information in a form readable by a machine (e.g., a computer). In some embodiments, a machine-readable (e.g., computer-readable) medium includes a machine (e.g., a computer) readable storage medium such as a read only memory (“ROM”), random access memory (“RAM”), magnetic disk storage media, optical storage media, flash memory devices, etc. The words “example” or “exemplary” are used herein to mean serving as an example, instance, or illustration. Any aspect or design described herein as “example” or “exemplary” is not necessarily to be construed as preferred or advantageous over other aspects or designs. Rather, use of the words “example” or “exemplary” is intended to present concepts in a concrete fashion. As used in this application, the term “or” is intended to mean an inclusive “or” rather than an exclusive “or.” That is, unless specified otherwise, or clear from context, “X includes A or B” is intended to mean any of the natural inclusive permutations. That is, if X includes A; X includes B; or X includes both A and B, then “X includes A or B” is satisfied under any of the foregoing instances. In addition, the articles “a” and “an” as used in this application and the appended claims may generally be construed to mean “one or more” unless specified otherwise or clear from context to be directed to a singular form. Moreover, use of the term “an embodiment,” “one embodiment,” “some embodiments,” “an embodiment,” “one embodiment,” “some embodiments,” or the like throughout may or may not mean the same embodiment or embodiment. One or more embodiments or embodiments described herein may be combined in a particular embodiment or embodiment. The terms “first,” “second,” “third,” “fourth,” etc. as used herein are meant as labels to distinguish among different elements and may not necessarily have an ordinal meaning according to their numerical designation.
In the foregoing specification, embodiments of the disclosure have been described with reference to specific example embodiments thereof. It will be evident that various modifications can be made thereto without departing from the broader spirit and scope of embodiments of the disclosure as set forth in the following claims. The specification and drawings are, accordingly, to be regarded in an illustrative sense rather than a restrictive sense.