Path planning for autonomous mobile devices
By using diffusion mapping and rolling time-domain control, the mobile robot plans its path in a dynamic environment, solving the technical challenge of avoiding collisions and achieving safe and efficient autonomous navigation to its destination.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- FORD GLOBAL TECH LLC
- Filing Date
- 2018-01-24
- Publication Date
- 2026-07-21
AI Technical Summary
Existing technologies struggle to achieve mobile robot path planning in dynamic environments, especially in the presence of unknown or changing obstacles, to avoid collisions and efficiently navigate to the destination.
A diffusion mapping and rolling time-domain control method is adopted to create a local grid mapping map through sensor data, plan the path based on the transition probability between grid points, and update the path in real time with sensor data to avoid collisions.
It enables safe and efficient navigation of autonomous mobile devices in dynamic environments, avoiding collisions with static and dynamic obstacles, and does not rely on a global mapping map.
Smart Images

Figure CN111630460B_ABST
Abstract
Description
[0001] Cross-references to related applications
[0002] not applicable. Background Technology 1. Technical Field
[0004] This invention relates generally to the field of automated devices, and more specifically to path planning for autonomous mobile devices.
[0005] 2. Related Technologies
[0006] Mobile robots have been developed for a wide range of applications, including transportation, search, and surveillance. To help ensure that mobile robots travel safely, they can adapt their paths to changing environments, such as streets with newly constructed buildings, other moving obstacles, etc. Mobile robots can store a map of their operating area and navigate through predefined routes or change routes as they deem appropriate. Summary of the Invention
[0007] The present invention extends to methods, systems, and computer program products for path planning of autonomous mobile devices. Sensor data is collected from a portion of the environment between the mobile device's origin and destination. A diffusion map is created based on the sensor data. A path is determined within the portion of the environment toward the destination based on the transition probabilities in the diffusion map. The mobile device moves along the path for a specified amount of time. Attached Figure Description
[0008] The specific features, aspects, and advantages of the invention will be better understood with reference to the following description and accompanying drawings, in which:
[0009] Figure 1 An exemplary block diagram of a computing device is shown.
[0010] Figure 2 An exemplary computer architecture is shown that helps in planning the path of a mobile robot.
[0011] Figure 3 A flowchart illustrating an exemplary method for planning the path of a mobile robot is shown.
[0012] Figure 4 An exemplary data stream for collision avoidance based on a diffusion map is shown.
[0013] Figure 5 An example of a magnified portion of the grid map including the target points is shown.
[0014] Figures 6A to 6J An example equation for calculating a diffusion map is shown.
[0015] Figure 7 An exemplary algorithm for finding a local path from a starting point to a local target point is shown.
[0016] Figures 8A to 8C It shows crossing Figure 5 The grid mapping is an example of how a mobile robot moves from its origin to its global destination. Detailed Implementation
[0017] This invention extends to methods, systems, and computer program products for path planning of autonomous mobile devices. Mobile devices, especially mobile robots, have been used in a variety of applications, including logistics robots, home robots, automated guided vehicles, and delivery robots. Depending on the type and configuration, mobile robots can transport goods or cargo as an alternative to manual transport by human porters. Mobile robots can navigate predefined routes or change routes when they deem it appropriate.
[0018] Using a previous mapping of the operating area, path planning for mobile robots can be based on a variety of different algorithms. Path planning algorithms can find the minimum-cost path within a fixed graph. To account for environmental changes, existing paths can be progressively improved from previous paths. Some path planning algorithms quickly find suboptimal paths and then refine them into more optimized paths. Path planning algorithms can also use policies generated through reinforcement learning to avoid collisions based on the planned path and the diffusion mapping.
[0019] Aspects of the present invention include planning paths for a mobile robot to move autonomously in an environment that includes other moving objects, such as other mobile devices and pedestrians, without referencing a previous mapping of the environment. The planned path for the mobile robot can be determined, adjusted, and applied to avoid collisions in a dynamic environment while moving toward a destination.
[0020] Mobile robots can use a diffusion map to navigate from a point of origin to a destination within an environment. Sensors attached to the mobile robot collect sensor data about the area surrounding the robot (i.e., a portion of the environment). A mesh map of that area can be created based on the collected sensor data. The mesh map can include multiple grid points. The underlying geometry (manifold) of the mesh map can be determined for that area.
[0021] Path planning can include using transition probabilities between grid points to find feasible paths across a region toward a destination. In one aspect, diffusion maps are used in conjunction with rolling time-domain methods, involving the computation of diffusion maps at specified intervals. Using diffusion maps with rolling time-domain methods essentially eliminates the need to store previous maps.
[0022] Figure 1 An exemplary block diagram of computing device 100 is shown. Computing device 100 can be used to execute various programs, such as those discussed herein. Computing device 100 can be used as a server, client, or any other computing entity. Computing device 100 can perform various communication and data transmission functions as described herein, and can execute one or more application programs, such as those described herein. Computing device 100 can be any of a variety of computing devices, such as a mobile phone or other mobile device, a desktop computer, a laptop computer, a server computer, a handheld computer, a tablet computer, etc.
[0023] The computing device 100 includes one or more processors 102, one or more memory devices 104, one or more interfaces 106, one or more mass storage devices 108, one or more input / output (I / O) devices 110, and a display device 130, all of which are coupled to a bus 112. The one or more processors 102 include one or more processors or controllers that execute instructions stored in the one or more memory devices 104 and / or one or more mass storage devices 108. The one or more processors 102 may also include various types of computer storage media, such as cache memory.
[0024] One or more memory devices 104 include various computer storage media, such as volatile memory (e.g., random access memory (RAM) 114) and / or non-volatile memory (e.g., read-only memory (ROM) 116). One or more memory devices 104 may also include rewritable ROM, such as flash memory.
[0025] One or more mass storage devices 108 include various computer storage media, such as magnetic tape, hard disk, optical disk, solid-state storage (e.g., flash memory), etc. Figure 1 As depicted, a specific mass storage device is hard disk drive 124. Various drives may also be included in one or more mass storage devices 108 to enable reading from and / or writing to various computer-readable media. One or more mass storage devices 108 include removable media 126 and / or non-removable media.
[0026] One or more I / O devices 110 include various means that allow data and / or other information to be input into or retrieved from computing device 100. One or more exemplary I / O devices 110 include cursor control devices, keyboards, keypads, barcode scanners, microphones, monitors or other display devices, speakers, printers, network interface cards, modems, cameras, lenses, radar, CCDs or other image capture devices, etc.
[0027] Display device 130 includes any type of device capable of displaying information to one or more users of computing device 100. Examples of display device 130 include monitors, display terminals, video projection devices, etc.
[0028] One or more interfaces 106 include various interfaces that allow computing device 100 to interact with other systems, devices, or computing environments, as well as humans. One or more exemplary interfaces 106 may include any number of different network interfaces 120, such as interfaces to personal area networks (PANs), local area networks (LANs), wide area networks (WANs), wireless networks (e.g., near field communication (NFC), Bluetooth, Wi-Fi, etc.), and the Internet. Other interfaces include user interface 118 and peripheral device interface 122.
[0029] Bus 112 allows one or more processors 102, one or more memory devices 104, one or more interfaces 106, one or more mass storage devices 108, and one or more I / O devices 110 to communicate with each other and with other devices or components coupled to bus 112. Bus 112 represents one or more types of bus architectures, such as system bus, PCI bus, IEEE 1394 bus, USB bus, etc.
[0030] In this specification and the appended claims, a "diffusion map" is defined as a dimensionality reduction or feature extraction from a more complex space, which computes a family of embeddings of a dataset into a Euclidean space (e.g., a lower-dimensional or less complex one). Coordinates in the embedding space of the dataset can be computed based on the eigenvectors and eigenvalues of the diffusion operator on the data. Typically, the Euclidean distance between points in the embedding space is equal to the "diffusion distance" between probability distributions centered at those points. Determining the embedding space can include discovering the underlying manifold from which data has been sampled. By integrating local similarities at different scales, a diffusion map can provide a global description of the dataset.
[0031] In this specification and the appended claims, “rolling time-domain control” (or “model predictive control”) is defined as a control scheme for repeatedly solving a constrained optimization problem (e.g., at specified time intervals). Rolling time-domain control can select control actions using predictions of future costs, disturbances, and constraints over a moving time range. Rolling time-domain control can handle constraints (such as limitations on control variables) to generate feedforward actions.
[0032] Figure 2An exemplary environment 200 is shown that facilitates the planning of a mobile robot's path. Environment 200 includes a mobile robot 201 and objects 221A, 221B, and 221C. Mobile robot 201 may be a mobile autonomous land-based robot and may include any of the components described with respect to computing device 100. In one aspect, mobile robot 201 is approximately human-sized or smaller. Mobile robot 201 may carry goods and / or passengers. Each of objects 221A, 221B, and 221C may be a fixed or mobile object, such as a pedestrian, bicycle, another mobile robot, vehicle, sign, building, tree, bush, roadblock, or other type of object. Mobile robot 201 may move within environment 200 to navigate from its origin to its destination. Environment 200 may be and / or include interconnected portions of: roads, intersections, parking lots, bike lanes, paths, pedestrian walkways, sidewalks, crosswalks, walkways, corridors, etc.
[0033] In one aspect, environment 200 includes one or more static objects and one or more mobile objects (in addition to mobile robot 201). Mobile robot 201 is configured to adaptively navigate around one or more static objects and one or more mobile objects to move from a point of origin in environment 200 to a destination in environment 200.
[0034] As depicted, the mobile robot 201 includes a sensor 202, a mapping creator 222, a path planner 223, a data acquisition control module 224, a robot control system 252, and a motion component 254. Each of the sensor 202, mapping creator 222, path planner 223, data acquisition control module 224, robot control system 252, and motion component 254, and their respective components, can be interconnected via a network (or a portion thereof), such as a PAN, LAN, WAN, Controller Area Network (CAN) bus, and even the Internet. Therefore, each of the sensor 202, mapping creator 222, path planner 223, data acquisition control module 224, robot control system 252, and motion component 254, as well as any other connected computer system and its components, can create message-related data and exchange message-related data over a network (e.g., Near Field Communication (NFC) payloads, Bluetooth packets, Internet Protocol (IP) datagrams, and other higher-level protocols utilizing IP datagrams, such as Transmission Control Protocol (TCP), Hypertext Transfer Protocol (HTTP), Simple Mail Transfer Protocol (SMTP), etc.).
[0035] Sensor 202 also includes camera 203, lidar sensor 204, and radar sensor 206. Camera 203, lidar sensor 204, and radar sensor 206 can capture images of other objects in environment 200 (e.g., objects 221A, 221B, and 221C) and / or sense other objects in environment 200. Sensor 202 can capture images in different spectral portions, including the visible spectrum and the infrared (IR) spectrum.
[0036] Sensor 202 can be configured to sense objects in a 360-degree radius around mobile robot 201. Sensor 202 can be configured to face different directions, such as in the direction of travel (e.g., forward), away from the direction of travel (e.g., backward), and substantially perpendicular to the direction of travel (e.g., each side), to provide 360-degree coverage. In some respects, the orientation of the sensors changes based on the movement of mobile robot 201. For example, if mobile robot 201 turns, a forward-facing sensor can become a backward-facing sensor, and vice versa. If mobile robot 201 turns, a side-facing sensor can become a forward- or backward-facing sensor. The number and configuration of sensors 202 can be based on the sensing range and angle of each sensor and the desired navigation accuracy (e.g., within environment 200). Thus, sensor 202 can capture sensor data of a portion of environment 200 (e.g., up to the sensor range of sensor 202).
[0037] The mapping creator 222 is configured to create a diffusion map of a portion of environment 200 based on sensor data captured on that portion of environment 200. The created diffusion map represents a local subset of environment 200 (a less complex space) surrounding mobile robot 201 within environment 200 (a more complex space).
[0038] Mapping creator 222 can construct a local mesh mapping map 226 based on captured sensor data, distances to obstacles (e.g., objects 221A, 221B, and 221C), and the angle of the laser beam. Local mesh mapping map 226 can include multiple local mesh points representing a subset of mesh points from environment 200. Mapping creator 222 can then create a diffusion mapping map corresponding to the local mesh mapping map points.
[0039] Path planner 223 is configured to determine paths within multiple local grid points to proceed toward a global destination. Path planner 223 may receive a global route (e.g., via wireless communication) from a control entity (such as the owner or operator of mobile robot 201). The global route may indicate a global origin (e.g., the starting position of mobile robot 201) and a global destination within environment 200. The global route may also identify known static obstacles within environment 200. Path planner 223 can use a spread map corresponding to multiple local grid points and information from the global route to plan a path through the multiple local grid points toward the global destination.
[0040] On one hand, the current position of the mobile robot 201 (which may or may not be the starting position) is a grid point within a plurality of local grid points used to create a diffusion map. The path planner 223 identifies another (nearby) grid point with the minimum diffusion distance from the current position of the mobile robot 201. The path planner 223 then plans a path for the mobile robot 201 to travel from its current position to that other grid point. The neighboring grid point can be any grid point within the plurality of local grid points.
[0041] Generally, the robot control system 252 includes a set of integrated control systems for the fully autonomous movement of the mobile robot 201. For example, the robot control system 252 may include a throttle control system for controlling the throttle valve 242, a steering system for controlling the wheels 241, a collision avoidance system for controlling the brakes 243, etc. The robot control system 252 can receive inputs from other components of the mobile robot 201 (including the path planner 223) and send automated control 253 to the moving component 254 to control the movement of the mobile robot 201. For example, the moving component 254 can send automated control 253 to cause the mobile robot 201 to brake, decelerate, accelerate, turn, etc. Automated control can enable the mobile robot 201 to follow a path through a local mesh map to move towards a global destination while avoiding other sensed objects.
[0042] The data acquisition control module 224 is configured to control when the sensor 202 acquires sensor data. For example, the data acquisition control module 224 can instruct the sensor 202 to acquire sensor data at specified time intervals according to the sampling time 216. The sampling time 216 can range from a few microseconds to a few seconds. In one aspect, the sampling time 216 is in the range of 10 milliseconds to 1 second. The sampling time 216 can be customized for efficient and safe movement through the environment 200 without overloading the computational resources of the mobile robot 201. Thus, the sampling time 216 can be configured based on the computational resources of the mobile robot 201, the number and density of obstacles in the environment 200, the number and density of dynamic obstacles in the environment 200, the configuration and range of the sensor 202, etc.
[0043] On one hand, the sampling time 216 can be appropriately varied to adapt navigation for different environments. For example, the sampling time 216 can be received (e.g., via wireless communication) from a control entity (such as the owner or operator of the mobile robot 201). The sampling time 216 can be included in the global route.
[0044] Figure 3 A flowchart of an exemplary method 300 for planning a path for a mobile robot is shown. Method 300 will be described with respect to the components and data of the mobile robot 201.
[0045] Method 300 includes receiving a global route to travel from a starting point to a global destination within the environment (301). For example, path planner 223 may receive a global route 212. Global route 212 may identify a global path from a starting point 261 (e.g., the starting position of robot 201) within environment 200 to a global destination 262 (e.g., the endpoint or end position of mobile robot 201) within environment 200. Global route 212 may also include one or more known obstacles in environment 200 and / or sampling time 216.
[0046] Method 300 includes collecting sensor data (302) from a portion of the environment. For example, data acquisition control module 224 may send acquisition command 214 to sensor 202 based on a time interval based on sampling time 216. In response, sensor 202 may acquire sensor data 208 (e.g., including images, lidar echoes, radar echoes, etc.) of the environmental portion 250. Sensor 202 may detect objects 221A, 221B, and 221C within the environmental portion 250. Sensor data 208 may indicate that objects 221A, 221B, and 221C have been detected.
[0047] Method 300 includes creating a diffusion map for the portion of the environment based on sensor data. This diffusion map is based on a plurality of grid points and indicates at least one other object within that portion of the environment. The diffusion map defines transition probabilities (303) between grid points, including those taking at least one other object into account. For example, a map creator 222 can create a diffusion map 209 for the environmental portion 250 based on sensor data 208. The map creator 222 can formulate a local grid map 226 for the environmental portion 250 based on the sensor data 208. The local grid map 226 can include a plurality of grid points and can indicate the positions of objects 221A, 221B, and 221C within the plurality of grid points. The map creator 222 can create the diffusion map 209 from the local grid map 226. The diffusion map 209 represents the diffusion distance and defines transition probabilities (263) between grid points in the local grid map 226, taking into account the positions of objects 221A, 221B, and 221C.
[0048] Method 300 includes determining a path (304) from the mobile robot’s current position in a part of the environment toward a global destination based on transition probabilities. For example, path planner 223 may formulate path 217 to move from the mobile robot 201’s current position in part of the environment 250 toward global destination 262 based on transition probabilities 263.
[0049] Method 300 includes moving a mobile device (305) along a path to a local destination within a specified amount of time. For example, robot control system 252 may send control 253 to moving component 254 based on path 217. Control 253 may cause moving component 254 to move mobile robot 201 along path 217, thereby moving towards global destination 262. Movement along path 217 may cause mobile robot 201 to deviate from global route 212.
[0050] Actions 302, 303, 304, and 305 can be repeated at the next interval following sampling time 216. For example, data acquisition control module 224 can send acquisition command 214 to sensor 202 again (after the mobile robot 201 has moved along path 217 for a certain amount of time). Additional sensor data can be captured for different parts of environment 200. Mapping creator 222 can use the additional sensor data to create new local mesh mappings and corresponding new diffusion mappings with new transition probabilities. Path planner 223 can use the new diffusion mappings and new transition probabilities to plan a new path starting from the current position of mobile robot 201 (arrived after moving along path 217 for a certain amount of time) to advance additionally toward global destination 262.
[0051] Between time intervals, movement of the mobile robot 201 and other dynamic objects may cause obstacles to enter or leave the range of the sensor 202. At each interval, the captured sensor data can be used to plan a new path for the mobile robot 201 to move toward the global destination 262 while avoiding obstacles in the local sensing portions of the environment 200. Paths traversing different local sensing portions of the environment 200 may cause the mobile robot 201 to deviate from the global route 212.
[0052] Therefore, aspects of the present invention can plan paths to avoid collisions in parts of a dynamic environment while attempting to move toward a (e.g., global) destination within the dynamic environment. To plan collision-avoidance paths, the underlying geometry of a mesh map can be determined. The diffusion map can be used for path planning based on transition probabilities between mesh points to find feasible paths through (e.g., locally sensed) parts of the environment. The diffusion map can be supplemented with a rolling temporal method, including creating the diffusion map at specified time intervals. Using a rolling temporal method, a mobile robot can navigate from a starting position to a global destination without referencing a global map.
[0053] Figure 4 An exemplary data flow 400 for collision avoidance based on a diffusion map is shown. The components depicted in data flow 400 may be included in a mobile robot and are used to move the mobile robot toward a global destination within the environment. Figure 5 An exemplary enlarged portion of the grid map 500 is shown, including a start point 504, a current position 502, a target point 501, and a global route 511. A mobile robot, including components of the data flow 400, can be located at the current position 502.
[0054] The mobile robot can receive route 401, which includes a pre-planned route (e.g., a global route) to a destination within the environment. Route 401 can be created based on knowledge of the starting location (e.g., start 504) and the global destination in the environment. However, the creator of route 401 (e.g., the owner or operator of the mobile robot) may be unaware of some or all of the static objects in the environment. Furthermore, the creator of route 401 may not be able to plan dynamic objects entering and / or leaving the environment.
[0055] Thus, as the mobile robot moves toward the global destination, sensor 402 can be used to sense the perception area 523 around the mobile robot. Typically, path planner 403 can determine grid points in perception area 523 that have the minimum distance to global route 511 and the farthest distance from the current position 502. As depicted, path planner 403 includes a grid and target 404, a diffusion map 406, and a pathfinder 407.
[0056] The mesh and target 404 can use sensor signals to create a local mesh map and determine local target points. Typically, the sensing region 523 represents a local mesh map of the area surrounding the mobile robot (e.g., similar to local mesh map 226). Within the sensing region 523, a local path 503 indicates the route from the current position 502 to the target point 501. A magnified portion of the map 500 also indicates a global route 511.
[0057] Typically, within the mesh map 500, static obstacles 521 and 522 may be known to the creator of the global route 511. Within the magnified portion of the local mesh map 500, additional (static and / or dynamic) obstacles can be detected based on sensed data (including distance to obstacles, angles, or laser beams, etc.). For example, sensor 402 can sense additional obstacles, including obstacle 524.
[0058] To generate local path 503, diffusion map 406 can determine the geometry or underlying manifold (i.e., local mesh map) of the grid points in sensing region 523. Diffusion map 406 can compute diffusion maps corresponding to the grid map points in sensing region 523. To create the diffusion map, a diffusion process can be used. That is, each map grid point is considered a state, and the transition probabilities between grid points are defined. The transition probabilities can be computed based on a diffusion kernel that provides local similarity measurements.
[0059] Go to Figures 6A to 6J The diffusion map 406 can implement equations 601 to 610 to calculate the diffusion map (e.g., for grid map points in the sensing region 523). Figure 6A Equation 601 describes an exemplary Gaussian diffusion kernel, where m i and m j Let be the position vectors of the i-th and j-th grid points, respectively, and σ be the variance parameter. Then, the kernel matrix K can be defined as follows: Figure 6B Equation 602 in the diagram is shown, where n represents the number of grid points in the mapping graph. It can be used... Figure 6C Equation 603 in the equation is used to calculate from m i to m j The transition probability p ij .
[0060] Based on the transition probabilities, a diffusion matrix P of size n x n can be constructed. The diagonal elements are... The diagonal matrix is represented as D -1 ,according to Figure 6D Equation 604 in the equation represents the diffusion matrix. When the diffusion process has progressed t steps, the t-th order diffusion matrix is given, as follows: Figure 6Eas shown in Equation 605 in. Thus, element p t ij represents the sum of the probabilities of the achievable paths from m i to m j after t-order transitions. The diffusion distance between m i and m j can be defined by the t-order diffusion matrix represented by Equation 606 in Figure 6F .
[0061] When p t ik and p t jk are approximately equal, for example, when m i and m j are well-connected via m k , the diffusion distance becomes smaller. Thus, the diffusion distance implies the distance measured along the underlying geometry (or manifold) of the mapping graph grid points. The diffusion distance can be approximated by a dimensionality reduction that transforms an n-dimensional space into an r (< n)-dimensional space (i.e., the diffusion space). In the case where the symmetric matrix P' = D 1 / 2 PD -1 / 2 = D -1 / 2 KD -1 / 2 is defined, there exist orthonormal eigenvectors of P' that exhibit the property of Equation 607 in Figure 6G , where accordingly, S represents the orthogonal eigenvector matrix and Λ = diag({λ k} k=1..n ) represents the eigenvalue matrix. Then, the diffusion matrix P can be represented by Equation 608 in Figure 6H , where V = D -1 / 2 S is the right eigenvector matrix of P, and V -1 = S T D 1 / 2 is the left eigenvector matrix of P. <000019"3>By selecting r dominant eigenvalues in λ1 >... > λ r >... > λ n , the matrix H is defined as shown in Equation 609 in " Figure 6I , where Λ r = diag({λ k} k=1..r ) has the dominant r eigenvalues, and V r only contains the first r column vectors of V. The row space of H represents the diffusion mapping graph. The diffusion distance is equal to the Euclidean distance in the r-dimensional space, as shown in Equation 610 in Figure 6J , where row i (H) and rowj (H) represents the i-th row vector and the j-th row vector of H.
[0063] Therefore, in path planning, the diffusion mapping graph 406 can be used to find the mapping graph grid point m. j Its diffusion distance is closest to m. i (That is, the minimum d in equation 610 recursively until the target point is reached) t ij Therefore, diffusion map 406 can produce the diffusion map matrix H in Equation 609, whose row space has a dimension reduction of r. The Euclidean distance in the row space of H in Equation 610 is essentially equal to the diffusion distance in Equation 606, thus indicating the fundamental geometric connectivity between the map grid points. Therefore, in order to plan a path, diffusion map 406 can find the grid point with the minimum value of Equation 610 relative to the current grid point in the next sub-part of the global route 511.
[0064] This may be because the g-th row of the diffusion map matrix H in Equation 609 corresponds to the target point 501 and the s-th row corresponds to the current position 502. The neighborhood of a grid point can be defined as other perceptible grid points within a circle of radius R centered on that grid point (or within the sensing area 523). Due to obstacles, neighboring grid points within the entire circle may not be perceptible. For example, when sensor 402 is used at the current position 502, static obstacles 521 and 524 may block the perception of some grid points.
[0065] From neighboring grid points (i.e., grid points in the sensing region 523), the pathfinder 407 can calculate the diffusion distance to the target point 501 based on equation 610. The pathfinder 407 can use the row vectors H corresponding to the neighboring grid points and the g-th row vector H corresponding to the target point. Among the neighboring grid points, the grid point with the smallest diffusion distance is selected as the next grid point. Movement 408 can then move the mobile robot toward the target point 501. If the target point 501 is the global destination (yes), the process stops 409. If the target point 501 is not the global destination (no), the process repeats from grid and target 404.
[0066] The process can be repeated at specified intervals. For example, it can be repeated once the mobile robot reaches the target point, or after the mobile robot has moved towards the target point a specified interval. The process can be repeated until the global destination is reached.
[0067] On one hand, once the local path 503 is planned, the robot 408 can move along the local path 503 within a sampling time unit T. The heading vector can be calculated using the first and second grid points of the planned local path, and the robot moves at a speed of V in the heading direction for time T. After moving a distance V*T in the heading direction, the process is repeated for a new position from the grid and the target 404. Therefore, the local path 503 can be considered as a predicted path for the rolling time domain that the robot will follow starting from its current position. The local path 503 avoids collisions with obstacles because the constructed grid map has excluded areas occupied by obstacles.
[0068] Figure 7 An exemplary algorithm 700 for finding a local path from a starting point to a local target point is shown.
[0069] Figures 8A to 8C An example is shown of a mobile robot moving from a starting point 504 to a global destination 803 by traversing a grid map 500. Initially, a global route 511 is received, for example, at path planner 223, path planner 403, or another similar module. Figure 8A A global route 511 is depicted traversing the grid map 500. The global route 511 is essentially a proposed route from start 504 to global destination 803 based on (potentially incomplete) knowledge of the route creator (e.g., the owner or operator of the mobile robot). As the mobile robot moves toward global destination 803, a perception area 823 sensed by the robot's sensors can similarly move (where perception area 523 is an example). Within each perception area 823, static and / or dynamic obstacles can be sensed. In one aspect, the perception area 823 is configured to be approximately 10 meters (e.g., R = 10 meters).
[0070] Within each sensing region 823, algorithm 700 can implement equations 601 to 610 to determine local target points and plan local paths. In one aspect, less than all (e.g., half) of the total grid points are used for the transition steps in the calculation of the diffusion map. For example, t = n / 2 in equation 605. In another aspect, the dimension is reduced to, for example, 10% of the original dimension. That is, r = 0.1n in equation 609. In other aspects, a radius smaller than the full sensing range of the robot sensor is used to determine neighboring grid points. For example, the sensor may have a sensing range of 10 meters, but a radius of 2 meters is used to detect neighboring grid points.
[0071] exist Figure 8AWithin the grid map 500, the white areas represent known static obstacles (including previously marked static obstacles 521 and 522). As the mobile robot moves within the grid map 500, it can sense other static and / or dynamic obstacles, as indicated by the darker grid dots. Figure 8B Additional obstacles 823, which can be sensed by the mobile robot as it moves toward the global destination 803, are depicted in the mesh map 500. The mobile robot can sense these additional obstacles 823 within its perception range. Other obstacles may not be sensed by the mobile robot.
[0072] An estimated radius can be assigned to sensed obstacles. An estimated velocity can be assigned to dynamic obstacles. For example, a pedestrian can be assigned a radius of 2-5 meters and a velocity of 0.5-2 meters per second. Although dynamic obstacles can move in random directions, the radius and velocity of the obstacle, as well as the sampling time, can be customized according to the environment to aid in collision avoidance.
[0073] Due to obstacle avoidance, the mobile robot may deviate from the global route 511 when moving from the starting point 504 to the global destination 803. Avoiding static and / or dynamic obstacles may cause deviations. Figure 8C The actual route 811 of the mobile robot relative to the global route 511 is depicted. Therefore, the mobile robot can travel a series of local paths to continuously move towards the global destination while avoiding collisions with static and dynamic obstacles in the environment.
[0074] In one respect, one or more processors are configured to execute instructions (e.g., computer-readable instructions, computer-executable instructions, etc.) to perform any of the described operations. One or more processors may access information from system memory and / or store information in system memory. One or more processors may transform information between different formats, such as sensor data, diffusion maps, transition probabilities, global routes, paths, capture commands, robot control commands, sampling times, etc.
[0075] The system memory may be coupled to one or more processors and may store instructions (e.g., computer-readable instructions, computer-executable instructions, etc.) that are executed by said one or more processors. The system memory may also be configured to store any of a variety of other types of data generated by the described components, such as sensor data, diffusion maps, transition probabilities, global routes, paths, capture commands, robot control commands, sampling times, etc.
[0076] In the foregoing disclosure, reference is made to the accompanying drawings, which form part of this disclosure and illustrate specific implementations of this disclosure by way of illustration. It should be understood that other implementations and structural changes can be utilized without departing from the scope of this disclosure. Embodiments described by reference to "an embodiment," "an example embodiment," etc., in the specification may include specific features, structures, or characteristics, but each embodiment may not necessarily include said specific features, structures, or characteristics. Furthermore, such phrases do not necessarily refer to the same embodiment. Moreover, when a specific feature, structure, or characteristic is described in connection with an embodiment, whether or not it is explicitly described, it is believed that implementing such a feature, structure, or characteristic in conjunction with other embodiments is still within the knowledge of those skilled in the art.
[0077] Embodiments of the systems, apparatus, and methods disclosed herein may include or utilize dedicated or general-purpose computers, including computer hardware such as, for example, one or more processors and system memories, as discussed herein. Embodiments within the scope of this disclosure may also include physical and other computer-readable media for carrying or storing computer-executable instructions and / or data structures. Such computer-readable media may be any available media accessible by a general-purpose or dedicated computer system. A computer-readable medium storing computer-executable instructions is a computer storage medium (device). A computer-readable medium carrying computer-executable instructions is a transmission medium. Therefore, by way of example and not limitation, embodiments of this disclosure may include at least two distinct types of computer-readable media: a computer storage medium (device) and a transmission medium.
[0078] Computer storage media (devices) include: RAM, ROM, EEPROM, CD-ROM, solid-state drive (“SSD”) (e.g., RAM-based), flash memory, phase-change memory (“PCM”), other types of memory, other optical disc storage devices, magnetic disk storage devices or other magnetic storage devices, or any other medium that can be used to store desired program code in the form of computer-executable instructions or data structures and that can be accessed by a general-purpose or special-purpose computer.
[0079] The apparatuses, systems, and methods disclosed herein are implemented via computer networks. A “network” is defined as one or more data links capable of transmitting electronic data between computer systems and / or modules and / or other electronic devices. When information is transmitted or provided to a computer via a network or another communication connection (hardwired, wireless, or a combination of hardwired and wireless), the computer appropriately considers the connection as a transmission medium. The transmission medium may include networks and / or data links that can be used to carry desired program code in the form of computer-executable instructions or data structures and are accessible by general-purpose or special-purpose computers. The above combinations should also be included within the scope of computer-readable media.
[0080] Computer-executable instructions include, for example, instructions and data that, when executed in a processor, cause a general-purpose computer, a special-purpose computer, or a special-purpose processing device to perform a function or group of functions. Computer-executable instructions can be, for example, binary files, intermediate format instructions (such as assembly language), or even source code. Although the subject matter has been described in language specific to structural features and / or methodological actions, it should be understood that the subject matter defined in the appended claims is not necessarily limited to the features or actions described above. Rather, the features and actions are disclosed as exemplary forms for implementing the claims.
[0081] Those skilled in the art will understand that this disclosure can be practiced in networked computing environments with many types of computer system configurations, including built-in or other vehicle computers, personal computers, desktop computers, laptop computers, message processors, handheld devices, multiprocessor systems, microprocessor-based or programmable consumer electronics, network PCs, minicomputers, mainframes, mobile phones, PDAs, tablet computers, pagers, routers, switches, various storage devices, etc. This disclosure can also be practiced in distributed system environments, where local and remote computer systems, linked by a network (via hardwired data links, wireless data links, or a combination of hardwired and wireless data links), perform tasks. In a distributed computing environment, program modules can reside in both local and remote memory storage devices.
[0082] Furthermore, where appropriate, the functions described herein can be performed by one or more of the following: hardware, software, firmware, digital components, or analog components. For example, one or more application-specific integrated circuits (ASICs) can be programmed to perform one or more of the systems and programs described herein. Certain terms are used throughout the specification and claims to refer to specific system components. As those skilled in the art will understand, different names may be used to refer to components. This document is not intended to distinguish between components with different names but the same function.
[0083] It should be noted that the sensor embodiments discussed above may include computer hardware, software, firmware, or any combination thereof to perform at least a portion of their functions. For example, a sensor may include computer code configured to execute in one or more processors and may include hardware logic / circuit controlled by the computer code. These exemplary devices are provided herein for illustrative purposes and are not intended to be limiting. Embodiments of this disclosure may be implemented in one or more other types of devices as known to those skilled in the art.
[0084] At least some embodiments of this disclosure relate to computer program products that include such logic (e.g., in software form) stored on any computer-usable medium. When executed in one or more data processing devices, such software causes the devices to operate as described herein.
[0085] Although various embodiments of this disclosure have been described above, it should be understood that these embodiments are presented by way of example only and not by way of limitation. Those skilled in the art will understand that various changes in form and detail can be made without departing from the spirit and scope of this disclosure. Therefore, the breadth and scope of this disclosure should not be limited to any of the exemplary embodiments described above, but should be defined only by the appended claims and their equivalents. The foregoing description has been presented for purposes of illustration and description. It is not exhaustive or intended to limit this disclosure to the precise forms disclosed. Many modifications, variations, and combinations are possible in accordance with the foregoing teachings. Furthermore, it should be noted that any or all of the foregoing alternative implementations can be used in any desired combination to form additional hybrid implementations of this disclosure.
Claims
1. A method for a mobile device, comprising: Sensor data is collected from a portion of the environment between the origin and destination of the mobile device; A diffusion map is created based on the sensor data, and the diffusion map is supplemented using a rolling time-domain method, which includes creating the diffusion map at specified time intervals. The rolling time-domain control uses predictions of future costs, disturbances, and constraints over a moving time range to select control actions. The path toward the destination within the portion of the environment is determined based on the transition probabilities in the diffusion map. as well as The mobile device is moved along the path within a specified amount of time.
2. The method of claim 1, wherein creating the diffusion map based on the sensor data includes generating a local mesh map of the portion of the environment.
3. The method of claim 2, wherein creating a diffusion map based on the sensor data includes determining transition probabilities between grid points in the local grid map.
4. The method of claim 1, wherein creating the diffusion map based on the sensor data includes detecting obstacles within the sensing range of one or more sensors attached to the mobile device.
5. The method of claim 4, wherein determining a path toward the destination within the portion of the environment includes determining a path that avoids the detected obstacles.
6. The method of claim 5, wherein moving the mobile device along the path within a specified amount of time includes moving the mobile device along the path to avoid the detected obstacle.
7. A method for moving a mobile robot within an environment from a point of origin toward a global destination, the method comprising: Receive the global path from the origin to the global destination within the environment; Collect sensor data from a portion of the environment; A diffusion map of the portion of the environment is created based on the sensor data. The diffusion map is based on a plurality of grid points and indicates at least one other object within the portion of the environment. The diffusion map is defined in terms of transition probabilities between grid points in the plurality of grid points, including the at least one other object. The diffusion map is supplemented using a rolling time-domain method, which includes creating the diffusion map at specified time intervals. Rolling time-domain control uses predictions of future costs, disturbances, and constraints over the movement time range to select control actions. A path is determined based on the transition probability to move the mobile robot from its current position in the part of the environment toward the global destination; as well as The mobile robot moves along the path to a local destination within a specified amount of time.
8. The method of claim 7, further comprising, after moving the mobile robot along the path within the specified time period: Collect additional sensor data from another part of the environment; Another diffusion map of the other part of the environment is created based on the other sensor data. The other diffusion map includes a plurality of additional grid points and defines additional transition probabilities between grid points in the plurality of additional grid points. Based on the other transition probabilities, another path is determined to proceed from the local destination toward the global destination; as well as The mobile robot moves along the other path to another local destination within the specified time period.
9. The method of claim 7, further comprising generating a local grid mapping map including the plurality of grid points based on the sensor data.
10. The method of claim 7, wherein collecting sensor data includes collecting sensor data from one or more of the following: a camera, a lidar sensor, or a radar sensor.
11. The method of claim 7, wherein determining a path to move from the current position of the mobile robot toward the global destination includes finding a neighboring grid point with the minimum diffusion distance from the current position.
12. The method of claim 7, wherein determining a path to move from the mobile robot’s current position toward the global destination includes determining a path that avoids collisions with the at least one other object.
13. The method of claim 12, wherein determining a path to avoid collision with the at least one other object includes determining a path to avoid collision with a moving obstacle.
14. The method of claim 12, wherein moving the mobile robot along the path within a specified amount of time includes moving the mobile robot around the at least one other object.
15. The method of claim 7, wherein moving the mobile robot along the path within a specified amount of time comprises controlling one or more of the wheels, throttle, or brakes at the mobile robot to move the mobile robot along the path.
16. A mobile robot, the mobile robot comprising: processor; as well as System memory, coupled to the processor and storing instructions configured to cause the processor to: Collect sensor data from a portion of the environment; A diffusion map of the portion of the environment is created based on the sensor data. The diffusion map is based on a plurality of grid points and indicates at least one other object within the portion of the environment. The diffusion map is defined in terms of transition probabilities between grid points in the plurality of grid points, including the at least one other object. The diffusion map is supplemented using a rolling time-domain method, which includes creating the diffusion map at specified time intervals. Rolling time-domain control uses predictions of future costs, disturbances, and constraints over the movement time range to select control actions. A path is determined based on the transition probability to move the mobile robot from its current position in the part of the environment toward the global destination; and Control the motion components of the mobile robot to move the mobile robot along the path to a local destination within a specified amount of time.
17. The mobile robot of claim 16, further comprising instructions configured to cause the processor to perform the following: After the mobile robot has moved along the path within the specified time period: Collect additional sensor data from another part of the environment; Another diffusion map of the other part of the environment is created based on the other sensor data. The other diffusion map includes a plurality of additional grid points and defines additional transition probabilities between grid points in the plurality of additional grid points. Based on the other transition probabilities, another path is determined to proceed from the local destination toward the global destination; and The moving parts are controlled to move the mobile robot along the other path to another local destination within the specified time.
18. The mobile robot of claim 16, further comprising instructions configured to cause the processor to generate a local mesh map including the plurality of mesh points based on the sensor data.
19. The mobile robot of claim 16, wherein the instructions configured to cause the processor to determine a path to proceed from the current position of the mobile robot toward the global destination include instructions configured to cause the processor to find a neighboring grid point with a minimum diffusion distance from the current position.
20. The mobile robot of claim 16, wherein the instructions configured to cause the processor to control the motion components of the mobile robot to move the mobile robot along the path include instructions configured to cause the processor to control the motion components to avoid collision with the at least one other object.