US20180152628A1 - Camera peek into turn - Google Patents

Camera peek into turn Download PDF

Info

Publication number
US20180152628A1
US20180152628A1 US15/364,914 US201615364914A US2018152628A1 US 20180152628 A1 US20180152628 A1 US 20180152628A1 US 201615364914 A US201615364914 A US 201615364914A US 2018152628 A1 US2018152628 A1 US 2018152628A1
Authority
US
United States
Prior art keywords
vehicle
turn
angle
virtual camera
heading
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
US15/364,914
Inventor
Nirmal Patel
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Waymo LLC
Original Assignee
Waymo LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Waymo LLC filed Critical Waymo LLC
Priority to US15/364,914 priority Critical patent/US20180152628A1/en
Assigned to GOOGLE INC. reassignment GOOGLE INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: PATEL, NIRMAL
Assigned to WAYMO HOLDING INC. reassignment WAYMO HOLDING INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: GOOGLE INC.
Assigned to WAYMO LLC reassignment WAYMO LLC ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: WAYMO HOLDING INC.
Priority to EP21166316.6A priority patent/EP3862227A1/en
Priority to CA3045432A priority patent/CA3045432C/en
Priority to JP2019527814A priority patent/JP6906052B2/en
Priority to CN201780074305.9A priority patent/CN110023141B/en
Priority to AU2017366812A priority patent/AU2017366812B2/en
Priority to KR1020197015628A priority patent/KR102227316B1/en
Priority to PCT/US2017/062295 priority patent/WO2018102161A1/en
Priority to EP17817382.9A priority patent/EP3532342B1/en
Publication of US20180152628A1 publication Critical patent/US20180152628A1/en
Priority to US17/207,787 priority patent/US20210211576A1/en
Priority to JP2021063921A priority patent/JP7123207B2/en
Abandoned legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/64Computer-aided capture of images, e.g. transfer from script file into camera, check of taken image quality, advice or proposal for image composition or decision on when to take image
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/20Perspective computation
    • H04N5/23222
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60RVEHICLES, VEHICLE FITTINGS, OR VEHICLE PARTS, NOT OTHERWISE PROVIDED FOR
    • B60R1/00Optical viewing arrangements; Real-time viewing arrangements for drivers or passengers using optical image capturing systems, e.g. cameras or video systems specially adapted for use in or on vehicles
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60RVEHICLES, VEHICLE FITTINGS, OR VEHICLE PARTS, NOT OTHERWISE PROVIDED FOR
    • B60R1/00Optical viewing arrangements; Real-time viewing arrangements for drivers or passengers using optical image capturing systems, e.g. cameras or video systems specially adapted for use in or on vehicles
    • B60R1/20Real-time viewing arrangements for drivers or passengers using optical image capturing systems, e.g. cameras or video systems specially adapted for use in or on vehicles
    • B60R1/22Real-time viewing arrangements for drivers or passengers using optical image capturing systems, e.g. cameras or video systems specially adapted for use in or on vehicles for viewing an area outside the vehicle, e.g. the exterior of the vehicle
    • B60R1/23Real-time viewing arrangements for drivers or passengers using optical image capturing systems, e.g. cameras or video systems specially adapted for use in or on vehicles for viewing an area outside the vehicle, e.g. the exterior of the vehicle with a predetermined field of view
    • B60R1/27Real-time viewing arrangements for drivers or passengers using optical image capturing systems, e.g. cameras or video systems specially adapted for use in or on vehicles for viewing an area outside the vehicle, e.g. the exterior of the vehicle with a predetermined field of view providing all-round vision, e.g. using omnidirectional cameras
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60RVEHICLES, VEHICLE FITTINGS, OR VEHICLE PARTS, NOT OTHERWISE PROVIDED FOR
    • B60R1/00Optical viewing arrangements; Real-time viewing arrangements for drivers or passengers using optical image capturing systems, e.g. cameras or video systems specially adapted for use in or on vehicles
    • B60R1/20Real-time viewing arrangements for drivers or passengers using optical image capturing systems, e.g. cameras or video systems specially adapted for use in or on vehicles
    • B60R1/22Real-time viewing arrangements for drivers or passengers using optical image capturing systems, e.g. cameras or video systems specially adapted for use in or on vehicles for viewing an area outside the vehicle, e.g. the exterior of the vehicle
    • B60R1/28Real-time viewing arrangements for drivers or passengers using optical image capturing systems, e.g. cameras or video systems specially adapted for use in or on vehicles for viewing an area outside the vehicle, e.g. the exterior of the vehicle with an adjustable field of view
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot
    • G05D1/0094Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot involving pointing a payload, e.g. camera, weapon, sensor, towards a fixed or moving target
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0231Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
    • G05D1/0246Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using a video camera in combination with image processing means
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/63Control of cameras or camera modules by using electronic viewfinders
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/69Control of means for changing angle of the field of view, e.g. optical zoom objectives or electronic zooming
    • H04N5/23293
    • H04N5/23296
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60RVEHICLES, VEHICLE FITTINGS, OR VEHICLE PARTS, NOT OTHERWISE PROVIDED FOR
    • B60R2300/00Details of viewing arrangements using cameras and displays, specially adapted for use in a vehicle
    • B60R2300/30Details of viewing arrangements using cameras and displays, specially adapted for use in a vehicle characterised by the type of image processing
    • B60R2300/302Details of viewing arrangements using cameras and displays, specially adapted for use in a vehicle characterised by the type of image processing combining image information with GPS information or vehicle data, e.g. vehicle speed, gyro, steering angle data
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60RVEHICLES, VEHICLE FITTINGS, OR VEHICLE PARTS, NOT OTHERWISE PROVIDED FOR
    • B60R2300/00Details of viewing arrangements using cameras and displays, specially adapted for use in a vehicle
    • B60R2300/60Details of viewing arrangements using cameras and displays, specially adapted for use in a vehicle characterised by monitoring and displaying vehicle exterior scenes from a transformed perspective
    • B60R2300/602Details of viewing arrangements using cameras and displays, specially adapted for use in a vehicle characterised by monitoring and displaying vehicle exterior scenes from a transformed perspective with an adjustable viewpoint
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60RVEHICLES, VEHICLE FITTINGS, OR VEHICLE PARTS, NOT OTHERWISE PROVIDED FOR
    • B60R2300/00Details of viewing arrangements using cameras and displays, specially adapted for use in a vehicle
    • B60R2300/60Details of viewing arrangements using cameras and displays, specially adapted for use in a vehicle characterised by monitoring and displaying vehicle exterior scenes from a transformed perspective
    • B60R2300/602Details of viewing arrangements using cameras and displays, specially adapted for use in a vehicle characterised by monitoring and displaying vehicle exterior scenes from a transformed perspective with an adjustable viewpoint
    • B60R2300/605Details of viewing arrangements using cameras and displays, specially adapted for use in a vehicle characterised by monitoring and displaying vehicle exterior scenes from a transformed perspective with an adjustable viewpoint the adjustment being automatic
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60RVEHICLES, VEHICLE FITTINGS, OR VEHICLE PARTS, NOT OTHERWISE PROVIDED FOR
    • B60R2300/00Details of viewing arrangements using cameras and displays, specially adapted for use in a vehicle
    • B60R2300/80Details of viewing arrangements using cameras and displays, specially adapted for use in a vehicle characterised by the intended use of the viewing arrangement
    • B60R2300/8086Details of viewing arrangements using cameras and displays, specially adapted for use in a vehicle characterised by the intended use of the viewing arrangement for vehicle path indication

Definitions

  • Autonomous vehicles such as vehicles that do not require a human driver, can be used to aid in the transport of passengers or items from one location to another. Such vehicles may operate in a fully autonomous mode where passengers or a remote operator may provide some initial input, such as a pickup or destination location, and the vehicle maneuvers itself to that location.
  • autonomous vehicles may include lasers, sonar, radar, cameras, and other devices which scan and record data from the vehicle's surroundings. Sensor data from one or more of these devices may be used to detect objects and their respective characteristics (position, shape, heading, speed, etc.). These characteristics can be used to provide, to occupants of the vehicle, a visual indication of objects detected in the vicinity of a vehicle as well as what those objects are likely to do for some brief period into the future.
  • a display in the vehicle may present a video generated by a virtual camera system from the perspective of a virtual camera fixed relative to the vehicle at a default position.
  • the video may include imagery within a set field of view corresponding to the position of the virtual camera including a portion of the vehicle's surroundings and the vehicle's projected trajectory.
  • the virtual camera Upon the vehicle performing a turn, the virtual camera will remain in the default position, such that the video will continue to provide imagery located within the set field of view.
  • detection, identification, and prediction are critical functions for the safe operation of autonomous vehicle.
  • This technology generally relates to adjusting a virtual camera's orientation when a vehicle is making a turn.
  • One or more computing devices may receive the vehicle's original heading prior to making the turn and the vehicle's current heading. Based on the vehicle's original heading and the vehicle's current heading, the one or more computing devices may determine an angle of a turn the vehicle is performing. The one or more computing devices may determine a camera rotation angle and adjust the virtual camera's orientation relative to the vehicle to an updated orientation by rotating the virtual camera by the camera rotation angle. A video corresponding to the virtual camera's updated orientation may be generated by the one or more computing devices and displayed on a display.
  • the vehicle's original heading and the vehicle's current heading may be received from the vehicle's positioning system.
  • Determining the angle of the turn may be determined by calculating the difference between the vehicle's original heading from the vehicle's current heading.
  • the camera rotation angle may be based on the angle of the turn, and is calculated by inputting the angle of the turn into a squashing function and receiving an outputted angle, wherein the outputted angle is the camera rotation angle.
  • the virtual camera's orientation may be adjusted and the video may be displayed while the vehicle is making the turn.
  • the vehicle's current heading may be a projected heading and the virtual camera's orientation may be updated before the vehicle performs the turn.
  • the camera rotation angle may be calculated by inputting the angle of the turn into a squashing function and receiving an outputted angle and the outputted angle may be the camera rotation angle.
  • the camera rotation angle may be determined by accessing a table including predetermined camera rotation angles for each angle of the turn.
  • a system for adjusting a virtual camera's orientation when a vehicle is making a turn may comprise one or more processors configured to receive the vehicle's original heading prior to making the turn and the vehicle's current heading and determine, based on the vehicle's original heading and the vehicle's current heading, an angle of a turn the vehicle is performing.
  • the one or more processors may be further configured to determine a camera rotation angle, adjust the virtual camera's orientation relative to the vehicle to an updated orientation by rotating the virtual camera by the camera rotation angle, generate a video corresponding to the virtual camera's updated orientation, and display the video.
  • the method may comprise receiving the vehicle's original heading prior to making the turn and the vehicle's current heading, determining, based on the vehicle's original heading and the vehicle's current heading, an angle of a turn the vehicle is performing, determining a camera rotation angle, adjusting the virtual camera's orientation relative to the vehicle to an updated orientation by rotating the virtual camera by the camera rotation angle, generating a video corresponding to the virtual camera's updated orientation, and displaying, on a display, the video.
  • FIG. 1 is a functional diagram of an example vehicle in accordance with aspects of the disclosure.
  • FIGS. 2A-2D are example external views of a vehicle in accordance with aspects of the disclosure.
  • FIG. 3 is a pictorial diagram of a system in accordance with aspects of the disclosure.
  • FIG. 4 is a functional diagram of the system of FIG. 3 in accordance with aspects of the disclosure.
  • FIGS. 5A and 5B are illustrations of a virtual camera positioned at a default position in accordance with aspects of the disclosure.
  • FIG. 6 is an illustration of a field of view of a virtual camera in accordance with aspects of the disclosure.
  • FIG. 7 is an illustration of a field of view of a virtual camera rotating in accordance with aspects of the disclosure.
  • FIG. 8 is an illustration of a field of view of a virtual camera in based on a vehicle's projected trajectory in accordance with aspects of the disclosure.
  • FIGS. 9-12 are illustrations of a field of view of a virtual camera changing as a vehicle progresses through a turn, in accordance with aspects of the disclosure.
  • FIG. 13 is a chart showing the inputs and outputs of a squashing function in accordance with aspects of the disclosure.
  • FIGS. 14 and 15 are illustrations of a field of view of a virtual camera rotating in an opposite direction than the direction which a vehicle is projected to turn in accordance with aspects of the disclosure.
  • FIG. 16 is an illustration of a field of view of a virtual camera positioned above a vehicle in accordance with aspects of the disclosure.
  • FIG. 17 is a flow diagram in accordance with aspects of the disclosure.
  • the technology generally relates to providing passengers with information about a vehicle's environment. This may include, for instance, adjusting a virtual camera's position and orientation when the vehicle is making a turn. For instance, as the vehicle performs a turn the position of the virtual camera may be rotated around the vehicle to present video within an adjusted field of view corresponding to the vehicle's anticipated heading.
  • a computing device within the vehicle may transmit information to a virtual camera system corresponding to the vehicle's surroundings and positioning. Based on the received information, the virtual camera system may generate the video from a perspective of the virtual camera using the received data. The video may be generated by overlaying the vehicle's projected trajectory and detected objects on a map corresponding to the route the vehicle is traveling.
  • the distance the virtual camera rotates around the vehicle may be based on the angle of the turn the vehicle is performing.
  • the virtual camera system may input the angle of the turn the vehicle is performing, relative to the heading the vehicle was traveling prior to the turn, into a rotation table and output a corresponding camera rotation angle by which the virtual camera may be rotated.
  • the virtual camera system may continually update the camera rotation angle as the vehicle progresses through the turn.
  • the virtual camera system may determine an anticipated angle of an upcoming turn of the vehicle based on the vehicle's projected trajectory and begin to rotate the virtual camera at a predetermined distance before the vehicle makes the turn. For example, the virtual camera system may determine a distance the vehicle is from the upcoming turn and the anticipated angles of the turn the vehicle will be making. Upon determining the projected turn is located at or less than the predetermined distance, the virtual camera system may begin to rotate the virtual camera through camera rotation angles corresponding to the anticipated angles of the turn.
  • the virtual camera may remain stationary when the vehicle is stopped or projected to stop. For instance, the virtual camera may determine the vehicle's projected trajectory anticipates the vehicle will pass through a stop light. As such, the virtual camera may not rotate until the car travels through the stop light.
  • the virtual camera system may use a squashing function. For instance, the angle of the turn the vehicle is performing may be input into the squashing function and a camera angle rotation value, which is the same, or more gradual than the angles of the turn, may be output.
  • the virtual camera system may rotate the virtual camera to generate imagery corresponding to oncoming traffic at unprotected turns. For instance, the virtual camera may rotate in the opposite direction of the vehicle's projected trajectory to generate imagery corresponding to other vehicles travelling on the road where the vehicle is attempting to turn.
  • the height and pitch of the virtual camera may also be adjusted to capture more or less of the vehicle's surroundings. For example, when the vehicle is stopped at an intersection the virtual camera may be positioned above the vehicle and the pitch of the virtual camera may be adjusted such that it looks straight down to the vehicle. The virtual camera may then generate a video which includes imagery of the vehicle's surroundings on all sides of the vehicle.
  • the features described above may allow a vehicle, such as an autonomous vehicle, to provide video of the vehicle's trajectory and surroundings to its passenger.
  • a vehicle such as an autonomous vehicle
  • passengers are provided with information regarding the vehicle's projected trajectory or surroundings located further along the projected trajectory and consistent with the surroundings they would expect to see if they were manually driving the vehicle.
  • the video of the vehicle's trajectory and surroundings may be provided to individuals or systems located outside of the vehicle to the provide them with the video to remotely monitor and/or control the vehicle.
  • a vehicle 100 in accordance with one aspect of the disclosure includes various components. While certain aspects of the disclosure are particularly useful in connection with specific types of vehicles, the vehicle may be any type of vehicle including, but not limited to, cars, trucks, motorcycles, busses, recreational vehicles, etc.
  • the vehicle may have one or more computing devices, such as computing devices 110 containing one or more processors 120 , memory 130 and other components typically present in general purpose computing devices.
  • the memory 130 stores information accessible by the one or more processors 120 , including instructions 132 and data 134 that may be executed or otherwise used by the processor 120 .
  • the memory 130 may be of any type capable of storing information accessible by the processor, including a computing device-readable medium, or other medium that stores data that may be read with the aid of an electronic device, such as a hard-drive, memory card, ROM, RAM, DVD or other optical disks, as well as other write-capable and read-only memories.
  • Systems and methods may include different combinations of the foregoing, whereby different portions of the instructions and data are stored on different types of media.
  • the instructions 132 may be any set of instructions to be executed directly (such as machine code) or indirectly (such as scripts) by the processor.
  • the instructions may be stored as computing device code on the computing device-readable medium.
  • the terms “instructions” and “programs” may be used interchangeably herein.
  • the instructions may be stored in object code format for direct processing by the processor, or in any other computing device language including scripts or collections of independent source code modules that are interpreted on demand or compiled in advance. Functions, methods and routines of the instructions are explained in more detail below.
  • the data 134 may be retrieved, stored or modified by processor 120 in accordance with the instructions 132 .
  • the data may be stored in computing device registers, in a relational database as a table having a plurality of different fields and records, XML documents or flat files.
  • the data may also be formatted in any computing device-readable format.
  • the one or more processor 120 may be any conventional processors, such as commercially available CPUs. Alternatively, the one or more processors may be a dedicated device such as an ASIC or other hardware-based processor.
  • FIG. 1 functionally illustrates the processor, memory, and other elements of computing devices 110 as being within the same block, it will be understood by those of ordinary skill in the art that the processor, computing device, or memory may actually include multiple processors, computing devices, or memories that may or may not be stored within the same physical housing.
  • memory may be a hard drive or other storage media located in a housing different from that of computing devices 110 . Accordingly, references to a processor or computing device will be understood to include references to a collection of processors or computing devices or memories that may or may not operate in parallel.
  • Computing devices 110 may include all of the components normally used in connection with a computing device such as the processor and memory described above as well as a user input 150 (e.g., a mouse, keyboard, touch screen and/or microphone) and various electronic displays (e.g., a monitor having a screen or any other electrical device that is operable to display information).
  • a user input 150 e.g., a mouse, keyboard, touch screen and/or microphone
  • various electronic displays e.g., a monitor having a screen or any other electrical device that is operable to display information
  • the vehicle includes an internal electronic display 152 as well as one or more speakers 154 to provide information or audio visual experiences.
  • internal electronic display 152 may be located within a cabin of vehicle 100 and may be used by computing devices 110 to provide information to passengers within the vehicle 100 .
  • Computing devices 110 may also include one or more wireless network connections 156 to facilitate communication with other computing devices, such as the client computing devices and server computing devices described in detail below.
  • the wireless network connections may include short range communication protocols such as Bluetooth, Bluetooth low energy (LE), cellular connections, as well as various configurations and protocols including the Internet, World Wide Web, intranets, virtual private networks, wide area networks, local networks, private networks using communication protocols proprietary to one or more companies, Ethernet, WiFi and HTTP, and various combinations of the foregoing.
  • computing devices 110 may be an autonomous driving computing system incorporated into vehicle 100 .
  • the autonomous driving computing system may be capable of communicating with various components of the vehicle.
  • computing devices 110 may be in communication with various systems of vehicle 100 , such as deceleration system 160 , acceleration system 162 , steering system 164 , signaling system 166 , navigation system 168 , positioning system 170 , perception system 172 , and virtual camera system 176 in order to control the movement, acceleration, speed, operation, etc. of vehicle 100 in accordance with the instructions 132 of memory 130 .
  • these systems are shown as external to computing devices 110 , in actuality, these systems may also be incorporated into computing devices 110 , again as an autonomous driving computing system for controlling vehicle 100 .
  • computing devices 110 may interact with deceleration system 160 and acceleration system 162 in order to control the speed and acceleration of the vehicle.
  • the acceleration system 162 may provide signals to the engine 174 to accelerate at a particular rate.
  • steering system 164 may be used by computing devices 110 in order to control the direction of vehicle 100 .
  • vehicle 100 is configured for use on a road, such as a car or truck, the steering system may include components to control the angle of wheels to turn the vehicle.
  • Signaling system 166 may be used by computing devices 110 in order to signal the vehicle's intent to other drivers or vehicles, for example, by lighting turn signals or brake lights when needed.
  • Navigation system 168 may be used by computing devices 110 in order to determine and follow a route to a location.
  • the navigation system 168 and/or data 134 may store detailed map information, e.g., highly detailed maps identifying the shape and elevation of roadways, lane lines, intersections, crosswalks, speed limits, traffic signals, buildings, signs, real time traffic information, vegetation, or other such objects and information.
  • this detailed map information may define the geometry of vehicle's expected environment including roadways as well as speed restrictions (legal speed limits) for those roadways
  • Positioning system 170 may be used by computing devices 110 in order to determine the vehicle's relative or absolute position on a map or on the earth.
  • the positioning system 170 may include a GPS receiver to determine the device's latitude, longitude and/or altitude position.
  • Other location systems such as laser-based localization systems, inertial-aided GPS, or camera-based localization may also be used to identify the location of the vehicle.
  • the location of the vehicle may include an absolute geographical location, such as latitude, longitude, and altitude as well as relative location information, such as location relative to other cars immediately around it which can often be determined with less noise than absolute geographical location.
  • the positioning system 170 may also include other devices in communication with computing devices 110 , such as an accelerometer, gyroscope or another direction/speed detection device to determine the direction and speed of the vehicle or changes thereto.
  • an acceleration device may determine its pitch, yaw or roll (or changes thereto) relative to the direction of gravity or a plane perpendicular thereto.
  • the device may also track increases or decreases in speed and the direction of such changes.
  • the device's provision of location and orientation data as set forth herein may be provided automatically to the computing devices 110 , other computing devices and combinations of the foregoing.
  • the perception system 172 also includes one or more components for detecting objects external to the vehicle such as other vehicles, obstacles in the roadway, traffic signals, signs, trees, etc.
  • the perception system 172 may include lasers, sonar, radar, cameras and/or any other detection devices that record data which may be processed by computing devices 110 .
  • the vehicle is a small passenger vehicle such as a car
  • the car may include a laser or other sensors mounted on the roof or other convenient location.
  • a vehicle's perception system may use various sensors, such as LIDAR, sonar, radar, cameras, etc. to detect objects and their characteristics such as location, orientation, size, shape, type, direction and speed of movement, etc.
  • the raw data from the sensors and/or the aforementioned characteristics can be quantified or arranged into a descriptive function or vector for processing by the computing devices 110 .
  • computing devices 110 may use the positioning system 170 to determine the vehicle's location and perception system 172 to detect and respond to objects when needed to reach the location safely.
  • the virtual camera system 176 may aggregate data from the systems of the vehicle to generate a video of the vehicle's surroundings for display in the vehicle.
  • the video may include imagery within a set field of view corresponding to the position of the virtual camera including a portion of the vehicle's surroundings and the vehicle's projected trajectory.
  • the virtual camera system may aggregate data from the vehicle's perception system, 172 , such as objects external to the vehicle with a particular range, data from the positioning system 170 , such as the vehicle's current location, and data from the navigation system 168 , such as the vehicle's projected trajectory.
  • the virtual camera system may take such information and generate a video by overlaying the vehicle's projected trajectory and detected objects on a map corresponding to the route the vehicle is traveling.
  • the video generated by the virtual camera system 176 may be presented to the vehicle's passengers, other individuals, or recorded for future viewing, such as on a display in the vehicle.
  • the virtual camera system may include some or all of the components of the computing device 110 as described herein, such as processor 120 , memory 130 , data 134 , instructions 132 , and wireless network connections 156 .
  • the virtual camera system may perform the functions of a computing device 110 .
  • the virtual camera system may communicate with each system of the vehicle such as systems 160 - 174 .
  • FIGS. 2A-2D are examples of external views of vehicle 100 .
  • vehicle 100 includes many features of a typical vehicle such as headlights 202 , windshield 203 , taillights/turn signal lights 204 , rear windshield 205 , doors 206 , side view mirrors 208 , tires and wheels 210 , and turn signal/parking lights 212 .
  • Headlights 202 , taillights/turn signal lights 204 , and turn signal/parking lights 212 may be associated the signaling system 166 .
  • Light bar 207 may also be associated with the signaling system 166 .
  • Vehicle 100 also includes sensors of the perception system 172 .
  • housing 214 may include one or more laser devices for having 360 degree or narrower fields of view and one or more camera devices.
  • Housings 216 and 218 may include, for example, one or more radar and/or sonar devices.
  • the devices of the perception system 172 may also be incorporated into the typical vehicle components, such as taillights/turn signal lights 204 and/or side view mirrors 208 .
  • Each of these radar, camera, and lasers devices may be associated with processing components which process data from these devices as part of the perception system 172 and provide sensor data to the computing devices 110 .
  • the computing devices 110 may control the direction and speed of the vehicle by controlling various components.
  • computing devices 110 may navigate the vehicle to a destination location completely autonomously using data from the detailed map information and navigation system 168 .
  • computing devices 110 may cause the vehicle to accelerate (e.g., by increasing fuel or other energy provided to the engine by acceleration system 162 ), decelerate (e.g., by decreasing the fuel supplied to the engine, changing gears, and/or by applying brakes by deceleration system 160 ), change direction (e.g., by turning the front or rear wheels of vehicle 100 by steering system 164 ), and signal such changes (e.g., by lighting turn signals of signaling system 166 ).
  • accelerate e.g., by increasing fuel or other energy provided to the engine by acceleration system 162
  • decelerate e.g., by decreasing the fuel supplied to the engine, changing gears, and/or by applying brakes by deceleration system 160
  • change direction e.g., by turning the front or rear wheels of vehicle 100 by steering
  • the acceleration system 162 and deceleration system 160 may be a part of a drivetrain that includes various components between a power system 174 (for instance, a gas or electric engine) of the vehicle and the wheels of the vehicle. Again, by controlling these systems, computing devices 110 may also control the drivetrain of the vehicle in order to maneuver the vehicle autonomously.
  • a power system 174 for instance, a gas or electric engine
  • computing devices 110 may also control the drivetrain of the vehicle in order to maneuver the vehicle autonomously.
  • FIGS. 3 and 4 are pictorial and functional diagrams, respectively, of an example system 300 that includes a plurality of computing devices 310 , 320 , and 330 and a storage system 350 connected via a network 360 .
  • System 300 also includes vehicle 100 , and vehicle 100 A which may be configured similarly to vehicle 100 .
  • vehicle 100 A may be configured similarly to vehicle 100 .
  • each of computing devices 310 , 320 , and 330 may include one or more processors, memory, data and instructions. Such processors, memories, data and instructions may be configured similarly to one or more processors 120 , memory 130 , data 134 , and instructions 132 of computing devices 110 .
  • the network 360 may include various configurations and protocols including short range communication protocols such as Bluetooth, Bluetooth LE, the Internet, World Wide Web, intranets, virtual private networks, wide area networks, local networks, private networks using communication protocols proprietary to one or more companies, Ethernet, Wi-Fi and HTTP, and various combinations of the foregoing.
  • short range communication protocols such as Bluetooth, Bluetooth LE, the Internet, World Wide Web, intranets, virtual private networks, wide area networks, local networks, private networks using communication protocols proprietary to one or more companies, Ethernet, Wi-Fi and HTTP, and various combinations of the foregoing.
  • Such communication may be facilitated by any device capable of transmitting data to and from other computing devices, such as modems and wireless interfaces.
  • one or more computing devices 310 may include a server having a plurality of computing devices, e.g., a load balanced server farm, that exchange information with different nodes of a network for the purpose of receiving, processing and transmitting the data to and from other computing devices.
  • one or more computing devices 310 may include one or more server computing devices that are capable of communicating with one or more computing devices 110 of vehicle 100 or a similar computing device of vehicle 100 A as well as client computing devices 320 and 330 via the network 360 .
  • vehicles 100 and 100 A may be a part of a fleet of vehicles that can be monitored and dispatched by server computing devices to various locations.
  • the vehicles of the fleet may periodically send the server computing devices location information provided by the vehicle's respective positioning systems and the one or more server computing devices may track the locations of the vehicles. Additionally, the vehicle's computing device 110 may provide video from the virtual camera system to the one or more server computing devices for storage and/or future viewing.
  • server computing devices 310 may use network 360 to transmit and present information to a user, such as users 322 and 332 on a display, such as displays 324 and 334 of computing devices 320 and 330 .
  • computing devices 320 and 330 may be considered client computing devices.
  • each client computing device 320 and 330 may be a personal computing device intended for use by a user 322 , 332 , and have all of the components normally used in connection with a personal computing device including a one or more processors (e.g., a central processing unit (CPU)), memory (e.g., RAM and internal hard drives) storing data and instructions, a display such as displays 324 , 334 , 344 (e.g., a monitor having a screen, a touch-screen, a projector, a television, or other device that is operable to display information), and user input devices 426 , 436 , 446 (e.g., a mouse, keyboard, touch-screen or microphone).
  • the client computing devices may also include a camera for recording video streams, speakers, a network interface device, and all of the components used for connecting these elements to one another.
  • client computing devices 320 and 330 may each comprise a full-sized personal computing device, they may alternatively comprise mobile computing devices capable of wirelessly exchanging data with a server over a network such as the Internet.
  • client computing device 320 may be a mobile phone or a device such as a wireless-enabled PDA, a tablet PC, a wearable computing device or system, laptop, or a netbook that is capable of obtaining information via the Internet or other networks.
  • client computing device 330 may be a wearable computing device, such as a “smart watch.”
  • the user may input information using a keyboard, a keypad, a multi-function input button, a microphone, visual signals (for instance, hand or other gestures) with a camera or other sensors, a touch screen, etc.
  • Storage system 350 may store various types of information and data, such as videos generated by the virtual camera system 176 .
  • This information may be retrieved or otherwise accessed by a server computing device, such as one or more server computing devices 310 , or client computing devices 320 and 330 , in order to perform some or all of the features described herein.
  • the information may include user account information such as credentials (e.g., a user name and password as in the case of a traditional single-factor authentication as well as other types of credentials typically used in multi-factor authentications such as random identifiers, biometrics, etc.) that can be used to identify a user to the one or more server computing devices.
  • the user account information may also include personal information such as the user's name, contact information, identifying information of the user's client computing device (or devices if multiple devices are used with the same user account), as well as one or more unique signals for the user.
  • storage system 350 can be of any type of computerized storage capable of storing information accessible by the server computing devices 310 , such as a hard-drive, memory card, ROM, RAM, DVD, CD-ROM, write-capable, and read-only memories.
  • storage system 350 may include a distributed storage system where data is stored on a plurality of different storage devices which may be physically located at the same or different geographic locations.
  • Storage system 350 may be connected to the computing devices via the network 360 as shown in FIG. 4 and/or may be directly connected to or incorporated into any of the computing devices 310 , 320 , 330 , etc.
  • a virtual camera system within the vehicle may generate video.
  • the computing device may receive data from the vehicle's navigation system, positioning system, and perception system.
  • the data received from these systems may include a vehicle's projected trajectory as well as data indicating objects, such as other vehicles, within the vicinity of the vehicle.
  • projected trajectory information may be provided by the vehicle's navigation system 168 and positioning system 170 and the object data may be provided by the perception system 172 .
  • the computing device may pass this data to the virtual camera system.
  • a video may be generated for display on a display in the vehicle for viewing by the vehicle's passengers.
  • the virtual camera system may generate the video from a perspective of a virtual camera using the received data by overlaying the vehicle's projected trajectory and detected objects on a map corresponding to the route the vehicle is traveling.
  • FIG. 6 shows one frame of a video generated by the virtual camera system from the perspective of a virtual camera positioned above and behind the vehicle.
  • the video includes a map 601 presented within a set field of view 503 of the virtual camera.
  • the video further includes a virtual representation of the vehicle 100 and the vehicle's surroundings 610 overlaid on the map 601 , along with the vehicle's projected trajectory 620 .
  • the video may include animations, illustrations, live-action, and/or other such content typically found in videos.
  • the perspective of a virtual camera may be fixed relative to the vehicle at a default position.
  • this default position of the fixed position virtual camera 501 may be above and to the rear of the vehicle 100 and directed in a first heading 505 , as shown in FIGS. 5A and 5B .
  • the video may include imagery within a set field of view 503 corresponding to the first heading 505 and position of the fixed position virtual camera 501 .
  • the fixed position virtual camera 501 may remain in the default position relative to the vehicle, such that the video will continue to provide the vehicle's surroundings 610 and the vehicle's projected trajectory 620 captured in the first heading 505 and located within the set field of view 503 as shown in the example video of FIG. 6 .
  • the position of the virtual camera may be rotated around the vehicle to present video within an adjusted field of view corresponding to the vehicle's anticipated heading.
  • the virtual camera may rotate a predetermined distance around the vehicle, from the default position, as the vehicle performs the turn. For example, upon the vehicle 100 making a turn in a first direction 710 from a first road to a second road, the virtual camera 701 may rotate counter clockwise from its fixed positioned to be directed at a new heading 705 , as shown in FIG. 7 . As such, the field of the view of the virtual camera may correspond to an updated field of view 703 .
  • the updated field of view 703 may be adjusted such that the video includes imagery of the second road 812 onto which the vehicle 100 is turning, as shown in FIG. 8 .
  • the virtual camera rotation may occur when the vehicle 100 makes any turning motions, such as around a bend on a road or into a parking spot.
  • the distance the virtual camera 701 rotates around the vehicle may be based on the angle of the turn the vehicle is performing.
  • the angle of the turn the vehicle is performing may be determined by measuring the angular difference between the original heading 705 which the vehicle was originally on before performing a turn with the current heading 815 which the vehicle is currently on, as further shown in FIG. 8 .
  • the original heading 705 and the current heading may be provided by the vehicle's navigation system 168 and positioning system 170 .
  • the virtual camera system may input the angle of the turn the vehicle is performing into a rotation table.
  • the rotation table may map the angle of the turn to a camera rotation angle.
  • the angle of the turn input into the rotation table may be 90° and the rotation table may map the 90° angle to a 45° camera rotation.
  • the virtual camera system may then rotate the virtual camera 701 by the camera rotation angle, thereby causing the field of view of the virtual camera 701 to also rotate by the camera rotation angle.
  • the virtual camera system may continually update the camera rotation angle. For example, as shown in FIGS. 9-12 , to complete a turn, the vehicle progresses through a series of angles such as 0°-90°, or more or less.
  • the virtual camera system may continually adjust the camera rotation angle based on the angle of the turn the vehicle is currently performing relative to the heading the vehicle was traveling prior to entering the turn.
  • the virtual camera system may update the camera rotation angle in substantially real-time by continually calculating a camera rotation angle based on the angle of the turn.
  • the vehicle may be travelling along a projected trajectory 901 at an initial heading 903 and the virtual camera 701 may be positioned in the default position with a first field of view 920 .
  • the heading of the vehicle may be updated to a new heading 1003 , as shown in FIG. 10 .
  • the difference between the initial heading and the new heading may be input into the rotation table and a camera rotation angle may be output.
  • the virtual camera system may then rotate the virtual camera 701 by the output camera rotation angle, thereby causing the field of view of the virtual camera 701 to also rotate by the camera rotation angle to show a second field of view 1020 , as further shown in FIG. 10 .
  • the difference between the initial heading 903 and the latest heading 1101 may be input into the rotation table and a camera rotation angle may be output.
  • the virtual camera system may then rotate the virtual camera 701 by the output camera rotation angle, thereby causing the field of view of the virtual camera 701 to also rotate by the camera rotation angle to show a third field of view 1120 , as further shown in FIG. 11 .
  • the determination of the difference between the initial heading 903 and the latest heading 1101 may occur every hundredth of a second, or more or less.
  • the virtual camera 701 may return back to the default position, thereby capturing field of view 1220 as shown in FIG. 12 .
  • the virtual camera system may begin to rotate the virtual camera at a predetermined distance before the vehicle makes a turn.
  • the virtual camera system may determine an anticipated angle of an upcoming turn of the vehicle based on the vehicle's projected trajectory. For example, the virtual camera system may monitor the vehicle's projected trajectory and the positioning of the vehicle to determine a distance the vehicle is from the upcoming turn and the anticipated angles of the turn the vehicle will be making. The virtual camera system may compare how far away a projected turn is to a predetermined distance. Upon the virtual camera system determining the projected turn is located at or less than the predetermined distance, the virtual camera system may begin to rotate the virtual camera through camera rotation angles corresponding to the anticipated angles of the turn.
  • the predetermined distance may be based on the speed of the vehicle and the distance the vehicle is from the turn. In this regard, when the vehicle is traveling at a higher rate of speed the predetermined distance may greater than when the vehicle is traveling at a slower rate of speed. This may allow for a smoother, more gradual rotation of the virtual camera.
  • the rotation of the virtual camera may temporarily cease when the vehicle is stopped or projected to stop. For instance, the virtual camera may receive the vehicle's projected trajectory and determine the vehicle is going to turn left but will first pass through a stop light. As such, the virtual camera may not rotate until the car travels through the stop light.
  • a squashing function may be used to minimize minor camera rotations, such as those caused by minor oversteering corrections, etc., as well as to smooth larger camera rotations.
  • the squashing function may prevent the generated video from including imagery which appears to constantly switch position or move too quickly.
  • two example squashing results, 1310 and 1302 are further shown in FIG. 13 .
  • the squashing function may calculate and output a corresponding camera rotation angle, as shown in the Y-axis.
  • the output camera angle rotation values, as shown on the Y-axis which may be more or less gradual than the angles of the turn, as shown on the X-axis.
  • the virtual camera system may rotate the virtual camera to generate imagery corresponding to oncoming traffic at unprotected turns.
  • the virtual camera may rotate in the opposite direction of the vehicle's projected trajectory 1430 to generate imagery corresponding to other vehicles 1501 travelling on the road where the vehicle is attempting to turn 1420 , as shown in FIGS. 14 and 15 .
  • the camera rotation angle may be predetermined for unprotected turns, such as 45° or more or less.
  • the generated video may provide passengers of the vehicle with imagery similar to that which they would experience were they driving the vehicle.
  • Unprotected turns may include turns where the vehicle is turning onto a road where traffic is moving, such as a right on red or right at a stop sign at an intersection where the road the car is turning onto does not require other vehicles to stop at the intersection.
  • the height and pitch of the virtual camera may also be adjusted to capture more or less of the vehicle's surroundings. For example, when the vehicle is stopped at an intersection 1600 the virtual camera 710 may be positioned above the vehicle 100 and the pitch of the virtual camera may be adjusted such that it looks down to the vehicle, as shown in FIG. 16 . The virtual camera 710 may look straight down on the vehicle 100 . The virtual camera 710 may then generate a video which includes imagery from all around the vehicle as further shown in FIG. 16 .
  • FIG. 17 is an example flow diagram 1700 which may be performed by one or more computing devices of a vehicle, such as computing device 110 of vehicle 100 in order to adjust a virtual camera's orientation when a vehicle is making a turn.
  • the computing one or more computing devices may receive the vehicle's original heading prior to making the turn and the vehicle's current heading as shown in block 1710 . Based on the vehicle's original heading and the vehicle's current heading, the one or more computing devices may determine an angle of a turn the vehicle is performing as shown in block 1720 .
  • the one or more computing devices may determine a camera rotation angle, as shown in block 1730 , and adjust the virtual camera's orientation relative to the vehicle to an updated orientation by rotating the virtual camera by the camera rotation angle, as shown in block 1740 .
  • the one or more computing devices may generate a video corresponding to the virtual camera's updated orientation as shown in block 1750 and display the video on a display as shown in block 1760 .

Abstract

Aspects of the disclosure relate to adjusting a virtual camera's orientation when a vehicle is making a turn. One or more computing devices may receive the vehicle's original heading prior to making the turn and the vehicle's current heading. Based on the vehicle's original heading and the vehicle's current heading, the one or more computing devices may determine an angle of a turn the vehicle is performing and The one or more computing devices may determine a camera rotation angle and adjust the virtual camera's orientation relative to the vehicle to an updated orientation by rotating the virtual camera by the camera rotation angle and generate a video corresponding to the virtual camera's updated orientation. The video may be displayed on the display by the one or more computing devices.

Description

    BACKGROUND
  • Autonomous vehicles, such as vehicles that do not require a human driver, can be used to aid in the transport of passengers or items from one location to another. Such vehicles may operate in a fully autonomous mode where passengers or a remote operator may provide some initial input, such as a pickup or destination location, and the vehicle maneuvers itself to that location.
  • Such vehicles are typically equipped with various types of sensors in order to detect objects in the surroundings. For example, autonomous vehicles may include lasers, sonar, radar, cameras, and other devices which scan and record data from the vehicle's surroundings. Sensor data from one or more of these devices may be used to detect objects and their respective characteristics (position, shape, heading, speed, etc.). These characteristics can be used to provide, to occupants of the vehicle, a visual indication of objects detected in the vicinity of a vehicle as well as what those objects are likely to do for some brief period into the future.
  • To provide occupants of the vehicle with information about the vehicle's environment, a display in the vehicle may present a video generated by a virtual camera system from the perspective of a virtual camera fixed relative to the vehicle at a default position. The video may include imagery within a set field of view corresponding to the position of the virtual camera including a portion of the vehicle's surroundings and the vehicle's projected trajectory. Upon the vehicle performing a turn, the virtual camera will remain in the default position, such that the video will continue to provide imagery located within the set field of view.
  • At the same time, such information can be used to control the vehicle in order to avoid these objects, or minimize damage in the case of an unavoidable collision. Thus, detection, identification, and prediction are critical functions for the safe operation of autonomous vehicle.
  • BRIEF SUMMARY
  • This technology generally relates to adjusting a virtual camera's orientation when a vehicle is making a turn. One or more computing devices may receive the vehicle's original heading prior to making the turn and the vehicle's current heading. Based on the vehicle's original heading and the vehicle's current heading, the one or more computing devices may determine an angle of a turn the vehicle is performing. The one or more computing devices may determine a camera rotation angle and adjust the virtual camera's orientation relative to the vehicle to an updated orientation by rotating the virtual camera by the camera rotation angle. A video corresponding to the virtual camera's updated orientation may be generated by the one or more computing devices and displayed on a display.
  • The vehicle's original heading and the vehicle's current heading may be received from the vehicle's positioning system.
  • Determining the angle of the turn may be determined by calculating the difference between the vehicle's original heading from the vehicle's current heading.
  • The camera rotation angle may be based on the angle of the turn, and is calculated by inputting the angle of the turn into a squashing function and receiving an outputted angle, wherein the outputted angle is the camera rotation angle.
  • The virtual camera's orientation may be adjusted and the video may be displayed while the vehicle is making the turn.
  • The vehicle's current heading may be a projected heading and the virtual camera's orientation may be updated before the vehicle performs the turn.
  • The camera rotation angle may be calculated by inputting the angle of the turn into a squashing function and receiving an outputted angle and the outputted angle may be the camera rotation angle.
  • The camera rotation angle may be determined by accessing a table including predetermined camera rotation angles for each angle of the turn.
  • A system for adjusting a virtual camera's orientation when a vehicle is making a turn may comprise one or more processors configured to receive the vehicle's original heading prior to making the turn and the vehicle's current heading and determine, based on the vehicle's original heading and the vehicle's current heading, an angle of a turn the vehicle is performing. The one or more processors may be further configured to determine a camera rotation angle, adjust the virtual camera's orientation relative to the vehicle to an updated orientation by rotating the virtual camera by the camera rotation angle, generate a video corresponding to the virtual camera's updated orientation, and display the video.
  • A non-transitory computer readable medium on which instructions are stored, the instructions when executed by one or more processors, may cause the one or more processors to perform a method of adjusting a virtual camera's orientation when a vehicle is making a turn. The method may comprise receiving the vehicle's original heading prior to making the turn and the vehicle's current heading, determining, based on the vehicle's original heading and the vehicle's current heading, an angle of a turn the vehicle is performing, determining a camera rotation angle, adjusting the virtual camera's orientation relative to the vehicle to an updated orientation by rotating the virtual camera by the camera rotation angle, generating a video corresponding to the virtual camera's updated orientation, and displaying, on a display, the video.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • FIG. 1 is a functional diagram of an example vehicle in accordance with aspects of the disclosure.
  • FIGS. 2A-2D are example external views of a vehicle in accordance with aspects of the disclosure.
  • FIG. 3 is a pictorial diagram of a system in accordance with aspects of the disclosure.
  • FIG. 4 is a functional diagram of the system of FIG. 3 in accordance with aspects of the disclosure.
  • FIGS. 5A and 5B are illustrations of a virtual camera positioned at a default position in accordance with aspects of the disclosure.
  • FIG. 6 is an illustration of a field of view of a virtual camera in accordance with aspects of the disclosure.
  • FIG. 7 is an illustration of a field of view of a virtual camera rotating in accordance with aspects of the disclosure.
  • FIG. 8 is an illustration of a field of view of a virtual camera in based on a vehicle's projected trajectory in accordance with aspects of the disclosure.
  • FIGS. 9-12 are illustrations of a field of view of a virtual camera changing as a vehicle progresses through a turn, in accordance with aspects of the disclosure.
  • FIG. 13 is a chart showing the inputs and outputs of a squashing function in accordance with aspects of the disclosure.
  • FIGS. 14 and 15 are illustrations of a field of view of a virtual camera rotating in an opposite direction than the direction which a vehicle is projected to turn in accordance with aspects of the disclosure.
  • FIG. 16 is an illustration of a field of view of a virtual camera positioned above a vehicle in accordance with aspects of the disclosure.
  • FIG. 17 is a flow diagram in accordance with aspects of the disclosure.
  • DETAILED DESCRIPTION Overview
  • The technology generally relates to providing passengers with information about a vehicle's environment. This may include, for instance, adjusting a virtual camera's position and orientation when the vehicle is making a turn. For instance, as the vehicle performs a turn the position of the virtual camera may be rotated around the vehicle to present video within an adjusted field of view corresponding to the vehicle's anticipated heading. In this regard, a computing device within the vehicle may transmit information to a virtual camera system corresponding to the vehicle's surroundings and positioning. Based on the received information, the virtual camera system may generate the video from a perspective of the virtual camera using the received data. The video may be generated by overlaying the vehicle's projected trajectory and detected objects on a map corresponding to the route the vehicle is traveling.
  • The distance the virtual camera rotates around the vehicle may be based on the angle of the turn the vehicle is performing. The virtual camera system may input the angle of the turn the vehicle is performing, relative to the heading the vehicle was traveling prior to the turn, into a rotation table and output a corresponding camera rotation angle by which the virtual camera may be rotated. The virtual camera system may continually update the camera rotation angle as the vehicle progresses through the turn.
  • The virtual camera system may determine an anticipated angle of an upcoming turn of the vehicle based on the vehicle's projected trajectory and begin to rotate the virtual camera at a predetermined distance before the vehicle makes the turn. For example, the virtual camera system may determine a distance the vehicle is from the upcoming turn and the anticipated angles of the turn the vehicle will be making. Upon determining the projected turn is located at or less than the predetermined distance, the virtual camera system may begin to rotate the virtual camera through camera rotation angles corresponding to the anticipated angles of the turn.
  • The virtual camera may remain stationary when the vehicle is stopped or projected to stop. For instance, the virtual camera may determine the vehicle's projected trajectory anticipates the vehicle will pass through a stop light. As such, the virtual camera may not rotate until the car travels through the stop light.
  • To minimize minor camera rotations, such as those caused by minor oversteering corrections, and to smooth larger camera rotations, the virtual camera system may use a squashing function. For instance, the angle of the turn the vehicle is performing may be input into the squashing function and a camera angle rotation value, which is the same, or more gradual than the angles of the turn, may be output.
  • At unprotected turns, the virtual camera system may rotate the virtual camera to generate imagery corresponding to oncoming traffic at unprotected turns. For instance, the virtual camera may rotate in the opposite direction of the vehicle's projected trajectory to generate imagery corresponding to other vehicles travelling on the road where the vehicle is attempting to turn.
  • The height and pitch of the virtual camera may also be adjusted to capture more or less of the vehicle's surroundings. For example, when the vehicle is stopped at an intersection the virtual camera may be positioned above the vehicle and the pitch of the virtual camera may be adjusted such that it looks straight down to the vehicle. The virtual camera may then generate a video which includes imagery of the vehicle's surroundings on all sides of the vehicle.
  • The features described above may allow a vehicle, such as an autonomous vehicle, to provide video of the vehicle's trajectory and surroundings to its passenger. By rotating the virtual camera generating the video, passengers are provided with information regarding the vehicle's projected trajectory or surroundings located further along the projected trajectory and consistent with the surroundings they would expect to see if they were manually driving the vehicle. Further, the video of the vehicle's trajectory and surroundings may be provided to individuals or systems located outside of the vehicle to the provide them with the video to remotely monitor and/or control the vehicle.
  • Example Systems
  • As shown in FIG. 1, a vehicle 100 in accordance with one aspect of the disclosure includes various components. While certain aspects of the disclosure are particularly useful in connection with specific types of vehicles, the vehicle may be any type of vehicle including, but not limited to, cars, trucks, motorcycles, busses, recreational vehicles, etc. The vehicle may have one or more computing devices, such as computing devices 110 containing one or more processors 120, memory 130 and other components typically present in general purpose computing devices.
  • The memory 130 stores information accessible by the one or more processors 120, including instructions 132 and data 134 that may be executed or otherwise used by the processor 120. The memory 130 may be of any type capable of storing information accessible by the processor, including a computing device-readable medium, or other medium that stores data that may be read with the aid of an electronic device, such as a hard-drive, memory card, ROM, RAM, DVD or other optical disks, as well as other write-capable and read-only memories. Systems and methods may include different combinations of the foregoing, whereby different portions of the instructions and data are stored on different types of media.
  • The instructions 132 may be any set of instructions to be executed directly (such as machine code) or indirectly (such as scripts) by the processor. For example, the instructions may be stored as computing device code on the computing device-readable medium. In that regard, the terms “instructions” and “programs” may be used interchangeably herein. The instructions may be stored in object code format for direct processing by the processor, or in any other computing device language including scripts or collections of independent source code modules that are interpreted on demand or compiled in advance. Functions, methods and routines of the instructions are explained in more detail below.
  • The data 134 may be retrieved, stored or modified by processor 120 in accordance with the instructions 132. For instance, although the claimed subject matter is not limited by any particular data structure, the data may be stored in computing device registers, in a relational database as a table having a plurality of different fields and records, XML documents or flat files. The data may also be formatted in any computing device-readable format.
  • The one or more processor 120 may be any conventional processors, such as commercially available CPUs. Alternatively, the one or more processors may be a dedicated device such as an ASIC or other hardware-based processor. Although FIG. 1 functionally illustrates the processor, memory, and other elements of computing devices 110 as being within the same block, it will be understood by those of ordinary skill in the art that the processor, computing device, or memory may actually include multiple processors, computing devices, or memories that may or may not be stored within the same physical housing. For example, memory may be a hard drive or other storage media located in a housing different from that of computing devices 110. Accordingly, references to a processor or computing device will be understood to include references to a collection of processors or computing devices or memories that may or may not operate in parallel.
  • Computing devices 110 may include all of the components normally used in connection with a computing device such as the processor and memory described above as well as a user input 150 (e.g., a mouse, keyboard, touch screen and/or microphone) and various electronic displays (e.g., a monitor having a screen or any other electrical device that is operable to display information). In this example, the vehicle includes an internal electronic display 152 as well as one or more speakers 154 to provide information or audio visual experiences. In this regard, internal electronic display 152 may be located within a cabin of vehicle 100 and may be used by computing devices 110 to provide information to passengers within the vehicle 100.
  • Computing devices 110 may also include one or more wireless network connections 156 to facilitate communication with other computing devices, such as the client computing devices and server computing devices described in detail below. The wireless network connections may include short range communication protocols such as Bluetooth, Bluetooth low energy (LE), cellular connections, as well as various configurations and protocols including the Internet, World Wide Web, intranets, virtual private networks, wide area networks, local networks, private networks using communication protocols proprietary to one or more companies, Ethernet, WiFi and HTTP, and various combinations of the foregoing.
  • In one example, computing devices 110 may be an autonomous driving computing system incorporated into vehicle 100. The autonomous driving computing system may be capable of communicating with various components of the vehicle. For example, returning to FIG. 1, computing devices 110 may be in communication with various systems of vehicle 100, such as deceleration system 160, acceleration system 162, steering system 164, signaling system 166, navigation system 168, positioning system 170, perception system 172, and virtual camera system 176 in order to control the movement, acceleration, speed, operation, etc. of vehicle 100 in accordance with the instructions 132 of memory 130. Again, although these systems are shown as external to computing devices 110, in actuality, these systems may also be incorporated into computing devices 110, again as an autonomous driving computing system for controlling vehicle 100.
  • As an example, computing devices 110 may interact with deceleration system 160 and acceleration system 162 in order to control the speed and acceleration of the vehicle. For example, the acceleration system 162 may provide signals to the engine 174 to accelerate at a particular rate. Similarly, steering system 164 may be used by computing devices 110 in order to control the direction of vehicle 100. For example, if vehicle 100 is configured for use on a road, such as a car or truck, the steering system may include components to control the angle of wheels to turn the vehicle. Signaling system 166 may be used by computing devices 110 in order to signal the vehicle's intent to other drivers or vehicles, for example, by lighting turn signals or brake lights when needed.
  • Navigation system 168 may be used by computing devices 110 in order to determine and follow a route to a location. In this regard, the navigation system 168 and/or data 134 may store detailed map information, e.g., highly detailed maps identifying the shape and elevation of roadways, lane lines, intersections, crosswalks, speed limits, traffic signals, buildings, signs, real time traffic information, vegetation, or other such objects and information. In other words, this detailed map information may define the geometry of vehicle's expected environment including roadways as well as speed restrictions (legal speed limits) for those roadways
  • Positioning system 170 may be used by computing devices 110 in order to determine the vehicle's relative or absolute position on a map or on the earth. For example, the positioning system 170 may include a GPS receiver to determine the device's latitude, longitude and/or altitude position. Other location systems such as laser-based localization systems, inertial-aided GPS, or camera-based localization may also be used to identify the location of the vehicle. The location of the vehicle may include an absolute geographical location, such as latitude, longitude, and altitude as well as relative location information, such as location relative to other cars immediately around it which can often be determined with less noise than absolute geographical location.
  • The positioning system 170 may also include other devices in communication with computing devices 110, such as an accelerometer, gyroscope or another direction/speed detection device to determine the direction and speed of the vehicle or changes thereto. By way of example only, an acceleration device may determine its pitch, yaw or roll (or changes thereto) relative to the direction of gravity or a plane perpendicular thereto. The device may also track increases or decreases in speed and the direction of such changes. The device's provision of location and orientation data as set forth herein may be provided automatically to the computing devices 110, other computing devices and combinations of the foregoing.
  • The perception system 172 also includes one or more components for detecting objects external to the vehicle such as other vehicles, obstacles in the roadway, traffic signals, signs, trees, etc. For example, the perception system 172 may include lasers, sonar, radar, cameras and/or any other detection devices that record data which may be processed by computing devices 110. In the case where the vehicle is a small passenger vehicle such as a car, the car may include a laser or other sensors mounted on the roof or other convenient location. For instance, a vehicle's perception system may use various sensors, such as LIDAR, sonar, radar, cameras, etc. to detect objects and their characteristics such as location, orientation, size, shape, type, direction and speed of movement, etc. The raw data from the sensors and/or the aforementioned characteristics can be quantified or arranged into a descriptive function or vector for processing by the computing devices 110. As discussed in further detail below, computing devices 110 may use the positioning system 170 to determine the vehicle's location and perception system 172 to detect and respond to objects when needed to reach the location safely.
  • The virtual camera system 176 may aggregate data from the systems of the vehicle to generate a video of the vehicle's surroundings for display in the vehicle. The video may include imagery within a set field of view corresponding to the position of the virtual camera including a portion of the vehicle's surroundings and the vehicle's projected trajectory. For instance, the virtual camera system may aggregate data from the vehicle's perception system, 172, such as objects external to the vehicle with a particular range, data from the positioning system 170, such as the vehicle's current location, and data from the navigation system 168, such as the vehicle's projected trajectory. The virtual camera system may take such information and generate a video by overlaying the vehicle's projected trajectory and detected objects on a map corresponding to the route the vehicle is traveling. The video generated by the virtual camera system 176 may be presented to the vehicle's passengers, other individuals, or recorded for future viewing, such as on a display in the vehicle. The virtual camera system may include some or all of the components of the computing device 110 as described herein, such as processor 120, memory 130, data 134, instructions 132, and wireless network connections 156. Likewise, in addition to, or alternatively to the functions of the virtual camera system described herein, the virtual camera system may perform the functions of a computing device 110. In this regard, the virtual camera system may communicate with each system of the vehicle such as systems 160-174.
  • FIGS. 2A-2D are examples of external views of vehicle 100. As can be seen, vehicle 100 includes many features of a typical vehicle such as headlights 202, windshield 203, taillights/turn signal lights 204, rear windshield 205, doors 206, side view mirrors 208, tires and wheels 210, and turn signal/parking lights 212. Headlights 202, taillights/turn signal lights 204, and turn signal/parking lights 212 may be associated the signaling system 166. Light bar 207 may also be associated with the signaling system 166.
  • Vehicle 100 also includes sensors of the perception system 172. For example, housing 214 may include one or more laser devices for having 360 degree or narrower fields of view and one or more camera devices. Housings 216 and 218 may include, for example, one or more radar and/or sonar devices. The devices of the perception system 172 may also be incorporated into the typical vehicle components, such as taillights/turn signal lights 204 and/or side view mirrors 208. Each of these radar, camera, and lasers devices may be associated with processing components which process data from these devices as part of the perception system 172 and provide sensor data to the computing devices 110.
  • The computing devices 110 may control the direction and speed of the vehicle by controlling various components. By way of example, computing devices 110 may navigate the vehicle to a destination location completely autonomously using data from the detailed map information and navigation system 168. In order to maneuver the vehicle, computing devices 110 may cause the vehicle to accelerate (e.g., by increasing fuel or other energy provided to the engine by acceleration system 162), decelerate (e.g., by decreasing the fuel supplied to the engine, changing gears, and/or by applying brakes by deceleration system 160), change direction (e.g., by turning the front or rear wheels of vehicle 100 by steering system 164), and signal such changes (e.g., by lighting turn signals of signaling system 166). Thus, the acceleration system 162 and deceleration system 160 may be a part of a drivetrain that includes various components between a power system 174 (for instance, a gas or electric engine) of the vehicle and the wheels of the vehicle. Again, by controlling these systems, computing devices 110 may also control the drivetrain of the vehicle in order to maneuver the vehicle autonomously.
  • The one or more computing devices 110 of vehicle 100 may also receive or transfer information to and from other computing devices. FIGS. 3 and 4 are pictorial and functional diagrams, respectively, of an example system 300 that includes a plurality of computing devices 310, 320, and 330 and a storage system 350 connected via a network 360. System 300 also includes vehicle 100, and vehicle 100A which may be configured similarly to vehicle 100. Although only a few vehicles and computing devices are depicted for simplicity, a typical system may include significantly more computing devices, vehicles, and storage systems.
  • As shown in FIG. 3, each of computing devices 310, 320, and 330 may include one or more processors, memory, data and instructions. Such processors, memories, data and instructions may be configured similarly to one or more processors 120, memory 130, data 134, and instructions 132 of computing devices 110.
  • The network 360, and intervening nodes, may include various configurations and protocols including short range communication protocols such as Bluetooth, Bluetooth LE, the Internet, World Wide Web, intranets, virtual private networks, wide area networks, local networks, private networks using communication protocols proprietary to one or more companies, Ethernet, Wi-Fi and HTTP, and various combinations of the foregoing. Such communication may be facilitated by any device capable of transmitting data to and from other computing devices, such as modems and wireless interfaces.
  • In one example, one or more computing devices 310 may include a server having a plurality of computing devices, e.g., a load balanced server farm, that exchange information with different nodes of a network for the purpose of receiving, processing and transmitting the data to and from other computing devices. For instance, one or more computing devices 310 may include one or more server computing devices that are capable of communicating with one or more computing devices 110 of vehicle 100 or a similar computing device of vehicle 100A as well as client computing devices 320 and 330 via the network 360. For example, vehicles 100 and 100A may be a part of a fleet of vehicles that can be monitored and dispatched by server computing devices to various locations. In this regard, the vehicles of the fleet may periodically send the server computing devices location information provided by the vehicle's respective positioning systems and the one or more server computing devices may track the locations of the vehicles. Additionally, the vehicle's computing device 110 may provide video from the virtual camera system to the one or more server computing devices for storage and/or future viewing.
  • In addition, server computing devices 310 may use network 360 to transmit and present information to a user, such as users 322 and 332 on a display, such as displays 324 and 334 of computing devices 320 and 330. In this regard, computing devices 320 and 330 may be considered client computing devices.
  • As shown in FIG. 4, each client computing device 320 and 330 may be a personal computing device intended for use by a user 322, 332, and have all of the components normally used in connection with a personal computing device including a one or more processors (e.g., a central processing unit (CPU)), memory (e.g., RAM and internal hard drives) storing data and instructions, a display such as displays 324, 334, 344 (e.g., a monitor having a screen, a touch-screen, a projector, a television, or other device that is operable to display information), and user input devices 426, 436, 446 (e.g., a mouse, keyboard, touch-screen or microphone). The client computing devices may also include a camera for recording video streams, speakers, a network interface device, and all of the components used for connecting these elements to one another.
  • Although the client computing devices 320 and 330 may each comprise a full-sized personal computing device, they may alternatively comprise mobile computing devices capable of wirelessly exchanging data with a server over a network such as the Internet. By way of example only, client computing device 320 may be a mobile phone or a device such as a wireless-enabled PDA, a tablet PC, a wearable computing device or system, laptop, or a netbook that is capable of obtaining information via the Internet or other networks. In another example, client computing device 330 may be a wearable computing device, such as a “smart watch.” As an example the user may input information using a keyboard, a keypad, a multi-function input button, a microphone, visual signals (for instance, hand or other gestures) with a camera or other sensors, a touch screen, etc.
  • Storage system 350 may store various types of information and data, such as videos generated by the virtual camera system 176. This information may be retrieved or otherwise accessed by a server computing device, such as one or more server computing devices 310, or client computing devices 320 and 330, in order to perform some or all of the features described herein. For example, the information may include user account information such as credentials (e.g., a user name and password as in the case of a traditional single-factor authentication as well as other types of credentials typically used in multi-factor authentications such as random identifiers, biometrics, etc.) that can be used to identify a user to the one or more server computing devices. The user account information may also include personal information such as the user's name, contact information, identifying information of the user's client computing device (or devices if multiple devices are used with the same user account), as well as one or more unique signals for the user.
  • As with memory 130, storage system 350 can be of any type of computerized storage capable of storing information accessible by the server computing devices 310, such as a hard-drive, memory card, ROM, RAM, DVD, CD-ROM, write-capable, and read-only memories. In addition, storage system 350 may include a distributed storage system where data is stored on a plurality of different storage devices which may be physically located at the same or different geographic locations. Storage system 350 may be connected to the computing devices via the network 360 as shown in FIG. 4 and/or may be directly connected to or incorporated into any of the computing devices 310, 320, 330, etc.
  • Example Methods
  • In addition to the operations described above and illustrated in the figures, various operations will now be described. It should be understood that the following operations do not have to be performed in the precise order described below. Rather, various steps can be handled in a different order or simultaneously, and steps may also be added or omitted.
  • A virtual camera system within the vehicle may generate video. In this regard, the computing device may receive data from the vehicle's navigation system, positioning system, and perception system. The data received from these systems may include a vehicle's projected trajectory as well as data indicating objects, such as other vehicles, within the vicinity of the vehicle. For instance, projected trajectory information may be provided by the vehicle's navigation system 168 and positioning system 170 and the object data may be provided by the perception system 172. The computing device may pass this data to the virtual camera system.
  • Based on the data received by the virtual camera system, a video may be generated for display on a display in the vehicle for viewing by the vehicle's passengers. In this regard, the virtual camera system may generate the video from a perspective of a virtual camera using the received data by overlaying the vehicle's projected trajectory and detected objects on a map corresponding to the route the vehicle is traveling. For instance, FIG. 6 shows one frame of a video generated by the virtual camera system from the perspective of a virtual camera positioned above and behind the vehicle. The video includes a map 601 presented within a set field of view 503 of the virtual camera. The video further includes a virtual representation of the vehicle 100 and the vehicle's surroundings 610 overlaid on the map 601, along with the vehicle's projected trajectory 620. The video may include animations, illustrations, live-action, and/or other such content typically found in videos.
  • The perspective of a virtual camera may be fixed relative to the vehicle at a default position. For instance, this default position of the fixed position virtual camera 501 may be above and to the rear of the vehicle 100 and directed in a first heading 505, as shown in FIGS. 5A and 5B. The video may include imagery within a set field of view 503 corresponding to the first heading 505 and position of the fixed position virtual camera 501.
  • Upon the vehicle performing a turn, the fixed position virtual camera 501 may remain in the default position relative to the vehicle, such that the video will continue to provide the vehicle's surroundings 610 and the vehicle's projected trajectory 620 captured in the first heading 505 and located within the set field of view 503 as shown in the example video of FIG. 6.
  • As the vehicle performs a turn the position of the virtual camera may be rotated around the vehicle to present video within an adjusted field of view corresponding to the vehicle's anticipated heading. In this regard, the virtual camera may rotate a predetermined distance around the vehicle, from the default position, as the vehicle performs the turn. For example, upon the vehicle 100 making a turn in a first direction 710 from a first road to a second road, the virtual camera 701 may rotate counter clockwise from its fixed positioned to be directed at a new heading 705, as shown in FIG. 7. As such, the field of the view of the virtual camera may correspond to an updated field of view 703.
  • The updated field of view 703 may be adjusted such that the video includes imagery of the second road 812 onto which the vehicle 100 is turning, as shown in FIG. 8. Although the above example shows the vehicle 100 turning from a first road 811 to a second road, as discussed below, the virtual camera rotation may occur when the vehicle 100 makes any turning motions, such as around a bend on a road or into a parking spot.
  • The distance the virtual camera 701 rotates around the vehicle may be based on the angle of the turn the vehicle is performing. The angle of the turn the vehicle is performing may be determined by measuring the angular difference between the original heading 705 which the vehicle was originally on before performing a turn with the current heading 815 which the vehicle is currently on, as further shown in FIG. 8. The original heading 705 and the current heading may be provided by the vehicle's navigation system 168 and positioning system 170.
  • The virtual camera system may input the angle of the turn the vehicle is performing into a rotation table. The rotation table may map the angle of the turn to a camera rotation angle. For instance, the angle of the turn input into the rotation table may be 90° and the rotation table may map the 90° angle to a 45° camera rotation. The virtual camera system may then rotate the virtual camera 701 by the camera rotation angle, thereby causing the field of view of the virtual camera 701 to also rotate by the camera rotation angle.
  • As the vehicle progresses through the turn, the virtual camera system may continually update the camera rotation angle. For example, as shown in FIGS. 9-12, to complete a turn, the vehicle progresses through a series of angles such as 0°-90°, or more or less.
  • The virtual camera system may continually adjust the camera rotation angle based on the angle of the turn the vehicle is currently performing relative to the heading the vehicle was traveling prior to entering the turn. In this regard, the virtual camera system may update the camera rotation angle in substantially real-time by continually calculating a camera rotation angle based on the angle of the turn. For instance, the vehicle may be travelling along a projected trajectory 901 at an initial heading 903 and the virtual camera 701 may be positioned in the default position with a first field of view 920.
  • As the vehicle 100 begins to turn, the heading of the vehicle may be updated to a new heading 1003, as shown in FIG. 10. The difference between the initial heading and the new heading may be input into the rotation table and a camera rotation angle may be output. The virtual camera system may then rotate the virtual camera 701 by the output camera rotation angle, thereby causing the field of view of the virtual camera 701 to also rotate by the camera rotation angle to show a second field of view 1020, as further shown in FIG. 10.
  • Similarly, as the vehicle 100 progresses along the turn, the difference between the initial heading 903 and the latest heading 1101, as shown in FIG. 11, may be input into the rotation table and a camera rotation angle may be output. The virtual camera system may then rotate the virtual camera 701 by the output camera rotation angle, thereby causing the field of view of the virtual camera 701 to also rotate by the camera rotation angle to show a third field of view 1120, as further shown in FIG. 11. The determination of the difference between the initial heading 903 and the latest heading 1101 may occur every hundredth of a second, or more or less. Upon completion of the turn by the vehicle 100, the virtual camera 701 may return back to the default position, thereby capturing field of view 1220 as shown in FIG. 12.
  • The virtual camera system may begin to rotate the virtual camera at a predetermined distance before the vehicle makes a turn. In this regard the virtual camera system may determine an anticipated angle of an upcoming turn of the vehicle based on the vehicle's projected trajectory. For example, the virtual camera system may monitor the vehicle's projected trajectory and the positioning of the vehicle to determine a distance the vehicle is from the upcoming turn and the anticipated angles of the turn the vehicle will be making. The virtual camera system may compare how far away a projected turn is to a predetermined distance. Upon the virtual camera system determining the projected turn is located at or less than the predetermined distance, the virtual camera system may begin to rotate the virtual camera through camera rotation angles corresponding to the anticipated angles of the turn.
  • The predetermined distance may be based on the speed of the vehicle and the distance the vehicle is from the turn. In this regard, when the vehicle is traveling at a higher rate of speed the predetermined distance may greater than when the vehicle is traveling at a slower rate of speed. This may allow for a smoother, more gradual rotation of the virtual camera.
  • In some embodiments, the rotation of the virtual camera may temporarily cease when the vehicle is stopped or projected to stop. For instance, the virtual camera may receive the vehicle's projected trajectory and determine the vehicle is going to turn left but will first pass through a stop light. As such, the virtual camera may not rotate until the car travels through the stop light.
  • A squashing function may be used to minimize minor camera rotations, such as those caused by minor oversteering corrections, etc., as well as to smooth larger camera rotations. In this regard, the squashing function may prevent the generated video from including imagery which appears to constantly switch position or move too quickly. For instance, two example squashing results, 1310 and 1302 are further shown in FIG. 13. To get squashing results, the angle of the turn the vehicle is performing, as shown by the X-axis of FIG. 13, may be input into a squashing function. The squashing function may calculate and output a corresponding camera rotation angle, as shown in the Y-axis. The output camera angle rotation values, as shown on the Y-axis, which may be more or less gradual than the angles of the turn, as shown on the X-axis.
  • As one example, the virtual camera system may rotate the virtual camera to generate imagery corresponding to oncoming traffic at unprotected turns. In this regard, the virtual camera may rotate in the opposite direction of the vehicle's projected trajectory 1430 to generate imagery corresponding to other vehicles 1501 travelling on the road where the vehicle is attempting to turn 1420, as shown in FIGS. 14 and 15. The camera rotation angle may be predetermined for unprotected turns, such as 45° or more or less. As such, the generated video may provide passengers of the vehicle with imagery similar to that which they would experience were they driving the vehicle. Unprotected turns may include turns where the vehicle is turning onto a road where traffic is moving, such as a right on red or right at a stop sign at an intersection where the road the car is turning onto does not require other vehicles to stop at the intersection.
  • The height and pitch of the virtual camera may also be adjusted to capture more or less of the vehicle's surroundings. For example, when the vehicle is stopped at an intersection 1600 the virtual camera 710 may be positioned above the vehicle 100 and the pitch of the virtual camera may be adjusted such that it looks down to the vehicle, as shown in FIG. 16. The virtual camera 710 may look straight down on the vehicle 100. The virtual camera 710 may then generate a video which includes imagery from all around the vehicle as further shown in FIG. 16.
  • FIG. 17 is an example flow diagram 1700 which may be performed by one or more computing devices of a vehicle, such as computing device 110 of vehicle 100 in order to adjust a virtual camera's orientation when a vehicle is making a turn. In this example, the computing one or more computing devices may receive the vehicle's original heading prior to making the turn and the vehicle's current heading as shown in block 1710. Based on the vehicle's original heading and the vehicle's current heading, the one or more computing devices may determine an angle of a turn the vehicle is performing as shown in block 1720. The one or more computing devices may determine a camera rotation angle, as shown in block 1730, and adjust the virtual camera's orientation relative to the vehicle to an updated orientation by rotating the virtual camera by the camera rotation angle, as shown in block 1740. The one or more computing devices may generate a video corresponding to the virtual camera's updated orientation as shown in block 1750 and display the video on a display as shown in block 1760.
  • Unless otherwise stated, the foregoing alternative examples are not mutually exclusive, but may be implemented in various combinations to achieve unique advantages. As these and other variations and combinations of the features discussed above can be utilized without departing from the subject matter defined by the claims, the foregoing description of the embodiments should be taken by way of illustration rather than by way of limitation of the subject matter defined by the claims. In addition, the provision of the examples described herein, as well as clauses phrased as “such as,” “including” and the like, should not be interpreted as limiting the subject matter of the claims to the specific examples; rather, the examples are intended to illustrate only one of many possible embodiments. Further, the same reference numbers in different drawings can identify the same or similar elements.

Claims (20)

1. A computer implemented method for adjusting a virtual camera's orientation when a vehicle is making a turn, the method comprising:
receiving, by one or more computing devices, the vehicle's original heading prior to entering the turn and the vehicle's current heading;
determining, based on the vehicle's original heading and the vehicle's current heading, by the one or more computing devices, an angle of a turn the vehicle is performing;
determining, by the one or more computing devices, a camera rotation angle;
adjusting, by one or more computing devices, the virtual camera's orientation relative to the vehicle to an updated orientation by rotating the virtual camera by the camera rotation angle;
generating and displaying, by the one or more computing devices, a video corresponding to the virtual camera's updated orientation.
2. The method of claim 1, wherein the vehicle's original heading and the vehicle's current heading are received from the vehicle's positioning system.
3. The method of claim 1, wherein determining the angle of the turn is determined by calculating the difference between the vehicle's original heading from the vehicle's current heading.
4. The method of claim 1, wherein the camera rotation angle is based on the angle of the turn, and is calculated by inputting the angle of the turn into a squashing function and receiving an outputted angle, wherein the outputted angle is the camera rotation angle.
5. The method of claim 1, wherein the virtual camera's orientation is adjusted and the video is displayed while the vehicle is making the turn.
6. The method of claim 1, wherein the vehicle's current heading is a projected heading and the virtual camera's orientation is updated before the vehicle performs the turn.
7. The method of claim 1, wherein the camera rotation angle is calculated by inputting the angle of the turn into a squashing function and receiving an outputted angle, wherein the outputted angle is the camera rotation angle.
8. The method of claim 1, wherein the camera rotation angle is determined by accessing a table including predetermined camera rotation angles for each angle of the turn.
9. A system for adjusting a virtual camera's orientation when a vehicle is making a turn, the system comprising one or more processors configured to:
receive the vehicle's original heading prior to entering the turn and the vehicle's current heading;
determine, based on the vehicle's original heading and the vehicle's current heading, an angle of a turn the vehicle is performing;
determine a camera rotation angle;
adjust the virtual camera's orientation relative to the vehicle to an updated orientation by rotating the virtual camera by the camera rotation angle;
generate and display a video corresponding to the virtual camera's updated orientation.
10. The system of claim 9, wherein the vehicle's original heading and the vehicle's current heading are received from the vehicle's positioning system.
11. The system of claim 9, wherein determining the angle of the turn is determined by calculating the difference between the vehicle's original heading from the vehicle's current heading.
12. The system of claim 9, wherein the camera rotation angle is based on the angle of the turn, and is calculated by inputting the angle of the turn into a squashing function and receiving an outputted angle, wherein the outputted angle is the camera rotation angle.
13. The system of claim 9, wherein the virtual camera's orientation is adjusted and the video is displayed while the vehicle is making the turn.
14. The system of claim 9, wherein the vehicle's current heading is a projected heading and the virtual camera's orientation is updated before the vehicle performs the turn.
15. The system of claim 9, wherein the camera rotation angle is calculated by inputting the angle of the turn into a squashing function and receiving an outputted angle, wherein the outputted angle is the camera rotation angle.
16. The method of claim 9, wherein the camera rotation angle is determined by accessing a table including predetermined camera rotation angles for each angle of the turn.
17. A non-transitory computer readable medium on which instructions are stored, the instructions when executed by one or more processors, cause the one or more processors to perform a method of adjusting a virtual camera's orientation when a vehicle is making a turn, the method comprising:
receiving the vehicle's original heading prior to entering the turn and the vehicle's current heading;
determining, based on the vehicle's original heading and the vehicle's current heading, an angle of a turn the vehicle is performing;
determining a camera rotation angle;
adjusting the virtual camera's orientation relative to the vehicle to an updated orientation by rotating the virtual camera by the camera rotation angle;
generating and displaying a video corresponding to the virtual camera's updated orientation.
18. The non-transitory computer readable medium of claim 17, wherein the vehicle's original heading and the vehicle's current heading are received from the vehicle's positioning system.
19. The non-transitory computer readable medium of claim 17, wherein determining the angle of the turn is determined by calculating the difference between the vehicle's original heading from the vehicle's current heading.
20. The non-transitory computer readable medium of claim 17, wherein the camera rotation angle is based on the angle of the turn, and is calculated by inputting the angle of the turn into a squashing function and receiving an outputted angle, wherein the outputted angle is the camera rotation angle.
US15/364,914 2016-11-30 2016-11-30 Camera peek into turn Abandoned US20180152628A1 (en)

Priority Applications (11)

Application Number Priority Date Filing Date Title
US15/364,914 US20180152628A1 (en) 2016-11-30 2016-11-30 Camera peek into turn
EP17817382.9A EP3532342B1 (en) 2016-11-30 2017-11-17 Method and system for adjusting a virtual camera's orientation when a vehicle is making a turn
PCT/US2017/062295 WO2018102161A1 (en) 2016-11-30 2017-11-17 Method and system for adjusting a virtual camera's orientation when a vehicle is making a turn
KR1020197015628A KR102227316B1 (en) 2016-11-30 2017-11-17 Method and system for adjusting the orientation of a virtual camera when the vehicle is turning
CN201780074305.9A CN110023141B (en) 2016-11-30 2017-11-17 Method and system for adjusting the orientation of a virtual camera when a vehicle turns
CA3045432A CA3045432C (en) 2016-11-30 2017-11-17 Method and system for adjusting a virtual camera's orientation when a vehicle is making a turn
JP2019527814A JP6906052B2 (en) 2016-11-30 2017-11-17 Methods and systems for adjusting the orientation of the bar channel camera when turning the vehicle
EP21166316.6A EP3862227A1 (en) 2016-11-30 2017-11-17 Method and system for adjusting a virtual camera's orientation when a vehicle is making a turn
AU2017366812A AU2017366812B2 (en) 2016-11-30 2017-11-17 Method and system for adjusting a virtual camera's orientation when a vehicle is making a turn
US17/207,787 US20210211576A1 (en) 2016-11-30 2021-03-22 Camera peek into turn
JP2021063921A JP7123207B2 (en) 2016-11-30 2021-04-05 A method and system for adjusting the orientation of a bar channel camera during a vehicle turn

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US15/364,914 US20180152628A1 (en) 2016-11-30 2016-11-30 Camera peek into turn

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US17/207,787 Continuation US20210211576A1 (en) 2016-11-30 2021-03-22 Camera peek into turn

Publications (1)

Publication Number Publication Date
US20180152628A1 true US20180152628A1 (en) 2018-05-31

Family

ID=60703011

Family Applications (2)

Application Number Title Priority Date Filing Date
US15/364,914 Abandoned US20180152628A1 (en) 2016-11-30 2016-11-30 Camera peek into turn
US17/207,787 Pending US20210211576A1 (en) 2016-11-30 2021-03-22 Camera peek into turn

Family Applications After (1)

Application Number Title Priority Date Filing Date
US17/207,787 Pending US20210211576A1 (en) 2016-11-30 2021-03-22 Camera peek into turn

Country Status (8)

Country Link
US (2) US20180152628A1 (en)
EP (2) EP3532342B1 (en)
JP (2) JP6906052B2 (en)
KR (1) KR102227316B1 (en)
CN (1) CN110023141B (en)
AU (1) AU2017366812B2 (en)
CA (1) CA3045432C (en)
WO (1) WO2018102161A1 (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190011911A1 (en) * 2017-07-07 2019-01-10 Hitachi, Ltd. Moving body remote control system and moving body remote control method
US10549749B2 (en) * 2018-03-08 2020-02-04 Baidu Usa Llc Post collision analysis-based vehicle action optimization for autonomous driving vehicles
US20200148113A1 (en) * 2018-11-13 2020-05-14 Rivian Ip Holdings, Llc Systems and methods for controlling a vehicle camera
US10755575B2 (en) * 2018-08-30 2020-08-25 Cisco Technology, Inc. Raw sensor data sharing for enhanced fleet-wide environmental awareness and safety
US11388482B2 (en) * 2017-03-17 2022-07-12 Sony Corporation Display control system and method to generate a virtual environment in a vehicle

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10580299B2 (en) * 2017-10-13 2020-03-03 Waymo Llc Lane change notification
KR102465191B1 (en) * 2021-11-17 2022-11-09 주식회사 에스씨 Around view system assisting ship in entering port and coming alongside the pier
CN116883504B (en) * 2023-09-07 2023-12-08 深圳魔视智能科技有限公司 Method and device for calibrating vehicle orientation, computer equipment and storage medium

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110246409A1 (en) * 2010-04-05 2011-10-06 Indian Statistical Institute Data set dimensionality reduction processes and machines
US20130321400A1 (en) * 2012-06-05 2013-12-05 Apple Inc. 3D Map Views for 3D Maps
US20140169630A1 (en) * 2011-08-02 2014-06-19 Nissan Motor Co., Ltd. Driving assistance apparatus and driving assistance method
US20140292805A1 (en) * 2013-03-29 2014-10-02 Fujitsu Ten Limited Image processing apparatus
US20140347450A1 (en) * 2011-11-30 2014-11-27 Imagenext Co., Ltd. Method and apparatus for creating 3d image of vehicle surroundings
US20150345976A1 (en) * 2014-05-30 2015-12-03 Apple Inc. Navigation peek ahead and behind
US20170274822A1 (en) * 2016-03-24 2017-09-28 Ford Global Technologies, Llc System and method for generating a hybrid camera view in a vehicle
US20180286095A1 (en) * 2015-10-08 2018-10-04 Nissan Motor Co., Ltd. Display Assistance Device and Display Assistance Method

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3391081B2 (en) * 1994-02-04 2003-03-31 日産自動車株式会社 Navigation system with bird's eye view display function
JPH1089988A (en) * 1996-09-10 1998-04-10 Nissan Motor Co Ltd Route guidance apparatus for vehicle
JP3447900B2 (en) * 1996-09-13 2003-09-16 アルパイン株式会社 Navigation device
JP3176037B2 (en) * 1996-09-19 2001-06-11 株式会社東芝 Navigation apparatus and video data display method in the same
JP3412684B2 (en) * 1999-03-01 2003-06-03 アイシン・エィ・ダブリュ株式会社 Navigation device and recording medium of the device
JP3508665B2 (en) * 1999-12-24 2004-03-22 株式会社豊田自動織機 Steering support device
DE10063980A1 (en) * 2000-12-14 2002-11-14 Markus Silberschmidt Recording of 3-D image sequences for film, video, Internet, etc. by recording a series of simultaneous real 2-D images that are then combined to form a view from a virtual camera moving in virtual 3-D space
JP3936885B2 (en) * 2002-05-17 2007-06-27 アルパイン株式会社 3D map display method and 3D map display device
JP2005193845A (en) * 2004-01-09 2005-07-21 Nissan Motor Co Ltd Vehicular monitoring device
DE102006006850B4 (en) 2006-02-15 2022-12-29 Bayerische Motoren Werke Aktiengesellschaft Method of aligning a pivotable vehicle sensor
DE102009006475A1 (en) * 2009-01-28 2010-07-29 Adc Automotive Distance Control Systems Gmbh Camera System i.e. stereo camera, for use in motor vehicle, has optical-/camera sensor unit rotatable around axis, where rotation angle of control unit is controlled in dependence of road surface
JP5077307B2 (en) * 2009-08-05 2012-11-21 株式会社デンソー Vehicle surrounding image display control device
JP5220797B2 (en) 2010-04-19 2013-06-26 富士通テン株式会社 Vehicle driving support device
JP2012195793A (en) * 2011-03-17 2012-10-11 Clarion Co Ltd Vehicle periphery monitoring device
JP5278527B2 (en) * 2011-12-27 2013-09-04 日産自動車株式会社 VEHICLE DISPLAY DEVICE AND VEHICLE VIDEO DISPLAY CONTROL METHOD
US20140114534A1 (en) * 2012-10-19 2014-04-24 GM Global Technology Operations LLC Dynamic rearview mirror display features
KR101896715B1 (en) * 2012-10-31 2018-09-07 현대자동차주식회사 Apparatus and method for position tracking of peripheral vehicle
JP6310652B2 (en) * 2013-07-03 2018-04-11 クラリオン株式会社 Video display system, video composition device, and video composition method
JP6206142B2 (en) 2013-12-03 2017-10-04 日産自動車株式会社 Information display device
CN104020674B (en) * 2014-04-21 2017-01-25 华南农业大学 Matlab simulation visualized platform of vehicle Bug obstacle avoidance algorithm
US9436182B2 (en) 2014-05-23 2016-09-06 Google Inc. Autonomous vehicles
US9740945B2 (en) * 2015-01-14 2017-08-22 Magna Electronics Inc. Driver assistance system for vehicle

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110246409A1 (en) * 2010-04-05 2011-10-06 Indian Statistical Institute Data set dimensionality reduction processes and machines
US20140169630A1 (en) * 2011-08-02 2014-06-19 Nissan Motor Co., Ltd. Driving assistance apparatus and driving assistance method
US20140347450A1 (en) * 2011-11-30 2014-11-27 Imagenext Co., Ltd. Method and apparatus for creating 3d image of vehicle surroundings
US20130321400A1 (en) * 2012-06-05 2013-12-05 Apple Inc. 3D Map Views for 3D Maps
US20140292805A1 (en) * 2013-03-29 2014-10-02 Fujitsu Ten Limited Image processing apparatus
US20150345976A1 (en) * 2014-05-30 2015-12-03 Apple Inc. Navigation peek ahead and behind
US20180286095A1 (en) * 2015-10-08 2018-10-04 Nissan Motor Co., Ltd. Display Assistance Device and Display Assistance Method
US20170274822A1 (en) * 2016-03-24 2017-09-28 Ford Global Technologies, Llc System and method for generating a hybrid camera view in a vehicle

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11388482B2 (en) * 2017-03-17 2022-07-12 Sony Corporation Display control system and method to generate a virtual environment in a vehicle
US20190011911A1 (en) * 2017-07-07 2019-01-10 Hitachi, Ltd. Moving body remote control system and moving body remote control method
US10549749B2 (en) * 2018-03-08 2020-02-04 Baidu Usa Llc Post collision analysis-based vehicle action optimization for autonomous driving vehicles
US10755575B2 (en) * 2018-08-30 2020-08-25 Cisco Technology, Inc. Raw sensor data sharing for enhanced fleet-wide environmental awareness and safety
US20200148113A1 (en) * 2018-11-13 2020-05-14 Rivian Ip Holdings, Llc Systems and methods for controlling a vehicle camera
CN112867631A (en) * 2018-11-13 2021-05-28 瑞维安知识产权控股有限责任公司 System and method for controlling vehicle camera
US11279283B2 (en) * 2018-11-13 2022-03-22 Rivian Ip Holdings, Llc Systems and methods for controlling a vehicle camera
US11845381B2 (en) 2018-11-13 2023-12-19 Rivian Ip Holdings, Llc Systems and methods for controlling a vehicle camera

Also Published As

Publication number Publication date
KR20190077482A (en) 2019-07-03
JP2020519037A (en) 2020-06-25
CN110023141A (en) 2019-07-16
CA3045432C (en) 2022-05-10
JP6906052B2 (en) 2021-07-21
CN110023141B (en) 2023-08-08
EP3862227A1 (en) 2021-08-11
WO2018102161A1 (en) 2018-06-07
AU2017366812B2 (en) 2020-06-25
US20210211576A1 (en) 2021-07-08
EP3532342B1 (en) 2022-02-23
AU2017366812A1 (en) 2019-06-20
KR102227316B1 (en) 2021-03-12
CA3045432A1 (en) 2018-06-07
EP3532342A1 (en) 2019-09-04
JP7123207B2 (en) 2022-08-22
JP2021108470A (en) 2021-07-29

Similar Documents

Publication Publication Date Title
US20210211576A1 (en) Camera peek into turn
US11951975B1 (en) Handling sensor occlusions for autonomous vehicles
US11061406B2 (en) Object action classification for autonomous vehicles
KR102315335B1 (en) Perceptions of assigned passengers for autonomous vehicles
US11721213B1 (en) Displaying sensor data and supplemental data as a mask for autonomous vehicles
US11195415B2 (en) Lane change notification
US20210356257A1 (en) Using map information to smooth objects generated from sensor data
US20220120581A1 (en) End of trip sequence
US10685566B1 (en) Differentiating roadways by elevation
US11475263B2 (en) Automatic labeling of objects in sensor data

Legal Events

Date Code Title Description
AS Assignment

Owner name: GOOGLE INC., CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:PATEL, NIRMAL;REEL/FRAME:040484/0154

Effective date: 20161129

AS Assignment

Owner name: WAYMO HOLDING INC., CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:GOOGLE INC.;REEL/FRAME:042099/0935

Effective date: 20170321

AS Assignment

Owner name: WAYMO LLC, CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:WAYMO HOLDING INC.;REEL/FRAME:042108/0021

Effective date: 20170322

STPP Information on status: patent application and granting procedure in general

Free format text: FINAL REJECTION MAILED

STPP Information on status: patent application and granting procedure in general

Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION

STPP Information on status: patent application and granting procedure in general

Free format text: NON FINAL ACTION MAILED

STPP Information on status: patent application and granting procedure in general

Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER

STPP Information on status: patent application and granting procedure in general

Free format text: FINAL REJECTION MAILED

STCV Information on status: appeal procedure

Free format text: NOTICE OF APPEAL FILED

STCV Information on status: appeal procedure

Free format text: APPEAL BRIEF (OR SUPPLEMENTAL BRIEF) ENTERED AND FORWARDED TO EXAMINER

STCV Information on status: appeal procedure

Free format text: ON APPEAL -- AWAITING DECISION BY THE BOARD OF APPEALS

STCV Information on status: appeal procedure

Free format text: BOARD OF APPEALS DECISION RENDERED

STCB Information on status: application discontinuation

Free format text: ABANDONED -- AFTER EXAMINER'S ANSWER OR BOARD OF APPEALS DECISION